我知道有人问过这个问题,但我已经尝试了所有的解决办法,但都没有结果。
我的应用程序的一个选项卡是日志。
当它被选中时,会显示一个包含日志列表的日志视图控制器。
我在顶部菜单栏上有一个"+“来添加新的日志
当我选择它时,我将添加日志视图控制器推到堆栈上。
我添加了一个新的日志,然后取回按钮。
当我返回到表时,列表不会更新。
我想在返回到第一个视图控制器时重新加载表中的数据,但是在返回到表时不会触发viewDidLoad、viewDidAppear或viewWillAppear。
因为第一个屏幕是不经意的
我将这些内容添加到第二个屏幕中,试图在“后退”按钮中找到发生的任何操作。
-(void)viewWillDisappear{
NSLog(@" whered it go");
}
-(void)viewDidDisAppear
{
NSLog(@" disapeeeeeearing");
}
- (void)backAction {
NSLog(@" WHAT ABOTU THIS ");
[self.navigationController popViewControllerAnimated:YES];
}
- (void)navigationController:(UINavigationController *)navigationController willShowViewController:(UIViewController *)viewController animated:(BOOL)animated {
[viewController viewWillAppear:animated];
NSLog(@"is ANY of this Happening");
}添加屏幕消失时,所有这些都不会触发没有打印的NSLog。
根据我所读到的,在第一个屏幕上缺少响应是因为日志表从未真正离开堆栈。
当我在另一个选项卡(应用程序的不同部分)上这样做时,没有发生这种情况。
这个选项卡的不同之处在于add日志视图控制器有5个子视图,可以调用modals (即使我没有调用它们,它也会失败)--我猜它与此有关。
从日志到添加日志的调用
AddViewController *controller =[[AddViewController alloc] initWithNibName:@"AddViewController" bundle:nil];
controller.passString= newText;
[self.navigationController pushViewController:controller animated:YES];没有任何返回代码,只需单击屏幕顶部的后退按钮即可。
抱歉拼写错了
发布于 2013-09-05 21:15:32
那是因为你没有使用正确的方法。
-(void)viewWillDisappear{
NSLog(@" whered it go");
}和
-(void)viewDidDisAppear
{
NSLog(@" disapeeeeeearing");
}在任何地方都没有申报。我相信你想写的是:
- (void)viewWillDisappear:(BOOL)animated
{
[super viewWillDisappear:animated];
NSLog(@"About to disappear");
}
- (void)viewDidDisappear:(BOOL)animated
{
[super viewDidDisappear:animated];
NSLog(@"Did disappear");
}方法是区分大小写的,不能只忽略参数而期望它正常工作。
https://stackoverflow.com/questions/18644059
复制相似问题