1

我知道有人问过这个问题,但我尝试了所有解决方案都无济于事。

我的应用程序的选项卡之一是日志

当它被选中时,会显示一个带有日志列表的日志视图控制器

我在顶部菜单栏上有一个“+”来添加新日志

当我选择它时,我将添加日志视图控制器推送到堆栈上

我添加了一个新日志 - 然后我按下后退按钮

当我返回表格时,列表未更新

我想在返回到第一个视图控制器时重新加载表中的数据,但是在返回表时不会触发 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];

没有任何返回代码,只需单击屏幕顶部的后退按钮即可。

抱歉有任何拼写错误

4

1 回答 1

0

那是因为你没有使用正确的方法。

-(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");
}

方法区分大小写,您不能只省略参数并期望它起作用。

于 2013-09-05T21:15:32.997 回答