我创建了一个tabBarNavigated应用程序。在第二个标签中,我做了一些正常的工作,但现在我想在第一个Tab中做一些事情,所以首先我尝试NSLog
一个字符串,但我没有反应。
- (void)viewDidLoad
{
NSLog(@"Test");
}
如果我在视图中添加标签,它将会显示,但对我的代码没有反应。
如果我启动我的应用程序,我会看到此视图,但我无法调用此方法中的任何操作,即使我更改了标签,然后返回第一个,仍然没有日志。
我尝试在GehaltView中使用NSlog
这是mainWindow
viewWillAppear不起作用:(
答案 0 :(得分:3)
仅在加载视图时调用-viewDidLoad
方法。除非视图被卸载,否则此方法将不会再次调用,在这种情况下将调用-viewDidUnload
。如果存在内存问题,可以卸载视图,但是否则它们通常会存在。
如果要触发每次出现视图时发生的操作,则可以使用-viewWillAppear:
方法。每次重新显示视图时都会调用此方法。您可以使用-viewWillDisappear
跟踪视图何时消失,并在两个标签之间切换时观察两个被调用。
另请注意,-viewDidLoad
可能会在视图显示之前被调用,但-viewWillAppear
仅在视图实际显示时(或之前的某个时间,如will
所示)被调用。
编辑:代码应该是
-(void)viewWillAppear:(BOOL)animated {
[super viewWillAppear:animated];
NSLog(@"View Will Appear");
}
编辑:整个答案假定您有一个UIViewController
的子类。在我看来,你是使用viewControllers旁路,这通常是一个坏主意。
答案 1 :(得分:0)
我在界面构建器中找到了解决方案,我必须在forst选项卡中添加自定义类。