我已经创建了一个 tabBarNavigated 应用程序。在第二个选项卡中,我做了一些工作正常的事情,但现在我想在第一个选项卡中做一些事情,所以首先我尝试 NSLog
一个字符串,但我没有任何反应。
- (void)viewDidLoad
{
NSLog(@"Test");
}
如果我向 View 添加标签,它会显示,但我的代码没有任何反应。
如果我启动我的应用程序,我会看到这个 View ,但我无法调用此方法中的任何操作,即使我更改选项卡并返回到第一个,仍然没有日志。
我尝试在 GehaltView 中使用 NSlog
这是主窗口
viewWillAppear 不起作用:(
最佳答案
-viewDidLoad
方法仅在加载 View 时调用。此方法不会再次调用,除非 View 被卸载,在这种情况下将调用-viewDidUnload
。如果存在内存问题,可以卸载 View ,否则它们通常会保留下来。
如果您想在每次 View 出现时触发一个 Action ,那么您可以改用-viewWillAppear:
方法。每次 View 重新出现时都会调用此方法。您可以使用 -viewWillDisappear
跟踪 View 何时消失,并在您在两个选项卡之间切换时观察两者被调用。
另请注意,-viewDidLoad
可能会在 View 出现之前被调用,但是 -viewWillAppear
只会在 View 实际出现时(或之前的片刻,因为 will
表示)。
编辑:代码应为
-(void)viewWillAppear:(BOOL)animated {
[super viewWillAppear:animated];
NSLog(@"View Will Appear");
}
编辑:整个答案假设您有一个 UIViewController
的子类。在我看来,您正在绕过使用 viewControllers,这通常是个坏主意。
关于objective-c - tabBarController 和第一个 Tab viewDidLoad,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6780413/