簡體   English   中英

UINavigationController推送到另一個UIViewController

[英]UINavigationController push to a different UIViewController

我敢肯定有一種簡單的方法可以使我明顯地丟失。

我的UINavigation Controller中有三個類:

  1. UINavigationController類型的MasterNavViewController擁有所有后續視圖控制器的屬性。
  2. FirstNavViewController-類型為UIViewController。
  3. SecondNavViewController-類型為UIViewController。

出於線程的原因,我不想進入這里,我想使用代碼從FirstNavViewController遷移到SecondNavViewController。 我努力了:

[self.navigationController pushViewController:SecondNavViewController animated:YES];

但是我的代碼中出現錯誤:使用未聲明的標識符'SecondNavViewController'您是說MasterNavViewController嗎?

我不確定如何進行此操作。 我曾嘗試導入SecondNavViewController.h,但這似乎也不起作用。

我在想也許我正在嘗試以錯誤的方式進行此操作。 任何指針將不勝感激! 詹姆士

按照要求:我沒有在代碼中顯式創建SecondNavViewController,我不確定如何...但是那是我最容易出錯的地方了。 我創建了這些類,然后將它們與我拖入IB的UIViewController鏈接。 通常,我只會在兩者之間創建一個推送選擇,但是在這種情況下,我不想這樣做。

如果要在接口構建器中創建UIViewController並以編程方式對其進行初始化和顯示,則必須使用-initWithNibName:bundle:創建類的實例,然后將它們傳遞給-pushViewController:animated:而不是類名。

由於線程原因而執行此操作時,必須小心進行UI的所有更新,包括在主線程上推送新的視圖控制器。 這可以很容易地做到如下:

dispatch_async(dispatch_get_main_queue(), ^(void)
{
    // update ui or push view controller etc.
});

SecondNavViewController不等於secondNavViewController Objective-C區分大小寫。

因此,您需要使用SecondNavViewController實例,例如:

SecondNavViewController * secondNavViewController = [[SecondNavViewController alloc] ...];
[self.navigationController pushViewController:secondNavViewController animated:YES];
...

暫無
暫無

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

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