【发布时间】:2013-09-05 19:06:32
【问题描述】:
我知道有人问过这个问题,但我尝试了所有解决方案都无济于事。
我的应用程序的一个选项卡是日志
当它被选中时,会显示一个带有日志列表的日志视图控制器
我在顶部菜单栏有一个“+”来添加新日志
当我选择它时,我将添加日志视图控制器推送到堆栈上
我添加了一个新日志 - 然后我按下返回按钮
当我返回表格时,列表没有更新
我想在返回到第一个视图控制器时重新加载表中的数据,但是 返回表时不会触发 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 时,这些都不会触发
从我读到的第一个屏幕上没有响应是因为日志表从未真正离开堆栈。
当我在另一个选项卡(应用程序的不同部分)上执行此操作时没有发生这种情况
此选项卡的不同之处在于添加日志视图控制器有 5 个子视图并且可以调用模态(尽管即使我不调用它们也会失败) - 我猜它与此有关。
从日志调用到添加日志
AddViewController *controller =[[AddViewController alloc] initWithNibName:@"AddViewController" bundle:nil];
controller.passString= newText;
[self.navigationController pushViewController:controller animated:YES];
没有任何返回代码,只需单击屏幕顶部的后退按钮即可。
如有错误请见谅
【问题讨论】:
标签: cocoa-touch uiviewcontroller navigation