簡體   English   中英

tabBarController 和第一個 Tab viewDidLoad

[英]tabBarController and first Tab viewDidLoad

我創建了一個 tabBarNavigated 應用程序。 在第二個選項卡中,我做了一些工作正常的事情,但現在我想在第一個選項卡中做一些事情,所以首先我嘗試NSLog一個字符串,但我沒有得到任何反應。

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

如果我將 label 添加到視圖中,它將顯示,但對我的代碼沒有反應。

如果我啟動我的應用程序,我會看到此視圖,但我無法在此方法中調用任何操作,即使我更改選項卡,並且 go 回到第一個,仍然沒有日志。

在此處輸入圖像描述

我嘗試在 GehaltView 中登錄

這是主窗口

在此處輸入圖像描述

viewWillAppear 不起作用:(

-viewDidLoad方法僅在加載視圖時調用。 除非視圖被卸載,否則不會再次調用此方法,在這種情況下將調用-viewDidUnload 如果存在 memory 問題,則可以卸載視圖,否則它們通常會保留。

如果您想在每次視圖出現時觸發一個動作,那么您可以使用-viewWillAppear:方法。 每次視圖重新出現時都會調用此方法。 您可以使用-viewWillDisappear跟蹤視圖何時消失,並在您在兩個選項卡之間切換時觀察兩者被調用。

另請注意, -viewDidLoad可能會在視圖出現之前被調用,但-viewWillAppear只會在視圖實際出現時(或之前的片刻,如will所示)被調用。

編輯:代碼應為

-(void)viewWillAppear:(BOOL)animated {
    [super viewWillAppear:animated];
    NSLog(@"View Will Appear");
}

編輯:整個答案假設您有一個UIViewController的子類。 在我看來,您正在繞過使用 viewControllers,這通常是一個壞主意。

我找到了解決方案,在界面生成器中,我必須將自定義 class 添加到 forst 選項卡。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM