簡體   English   中英

當UITabBarController在屏幕上顯示第一個選項卡時,調用什么方法? viewDidAppear不起作用

[英]What method is called when UITabBarController shows first tab on screen? viewDidAppear doesn't work

我在情節UITabBarController中將UITabBarController用作“是初始視圖控制器”。 當它出現在屏幕上時,最左邊的選項卡的視圖也隨之出現。 在所述選項卡的控制器的實現中,我有以下方法:

- (void)viewDidAppear:(BOOL)animated {
    NSLog(@"view controller - first tab - appeared");
}

僅當我手動切換到第一個標簽時才調用,而不是在第一次加載時調用。

我的問題是-在首次加載應用程序時,第一個標簽的控制器中調用了哪種方法?

編輯-怪異的行為?

當第一個選項卡出現在屏幕上時,會調用viewDidLoad ,一切都很好,但是只有手動更改選項卡后, viewDidAppear才會被調用。 其他選項卡首次出現時,則同時調用viewDidLoad viewDidAppear方法。

嘗試

 -(void)viewDidLoad
{
      [super viewDidLoad]
      NSLog(@"view controller - first tab - appeared");
}

問題在於您要嘗試使用該方法,因為它處於生命周期的不同部分。

我有一張桌子,該桌子的附件標記根據模型而打開和關閉。 viewDidLoad ,該表會自動放入所有選中標記(這是默認設置)。

基本上我改變accessoryType的細胞中,它們最初顯示我的更改被覆蓋了。 viewDidAppear我瀏覽了數據並進行了更改。 由於從未調用此方法,因此第一個選項卡屏幕始終不正確。

我可以通過在所有選項卡上使用viewDidAppearUITableViewDelegate方法來解決此問題:

- (void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath

首次顯示標簽視圖時設置附件類型

暫無
暫無

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

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