[英]Push a UIViewController within a UITabBarController's UINavigationController
[英]UINavigationController push to a different UIViewController
我敢肯定有一種簡單的方法可以使我明顯地丟失。
我的UINavigation Controller中有三個類:
出於線程的原因,我不想進入這里,我想使用代碼從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.