objective-c - tabBarController 和第一个 Tab viewDidLoad

标签 objective-c ios xcode uitabbarcontroller

我已经创建了一个 tabBarNavigated 应用程序。在第二个选项卡中,我做了一些工作正常的事情,但现在我想在第一个选项卡中做一些事情,所以首先我尝试 NSLog 一个字符串,但我没有任何反应。

- (void)viewDidLoad
{
 NSLog(@"Test");
}

如果我向 View 添加标签,它会显示,但我的代码没有任何反应。

如果我启动我的应用程序,我会看到这个 View ,但我无法调用此方法中的任何操作,即使我更改选项卡并返回到第一个,仍然没有日志。

enter image description here

我尝试在 GehaltView 中使用 NSlog

这是主窗口

enter image description here

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/

相关文章:

ios - SwiftUI:NavigationLink 的目标 View 的异构集合?

iphone - 如何将值传递给父 View Controller ?

ios - UIViewContentModeRedraw 与 setNeedsDisplay?

xcode - 如果不是这个 CFString 废话,我可以让 GCC 4.6.2 在 Xcode 4.2 中工作

ios - 当 UItableViewcell 高亮显示时,UITableViewcell 的 subview 消失,无论如何要修复它?

ios - 如何在 iphone 应用程序的 xcode 中导入字体

ios - 横向/所有方向的 MPMoviePlayerViewController

ios - 在 Swift 项目中正确使用 Obj-C 库

objective-c - 上载音频-HTTP流

ios - Objective-C - 自动从文本字段导航到文本字段