我需要將主屏幕的視圖控制器設置爲導航控制器的根,無論用戶如何達到它(推/顯示或自定義輪播)iOS 7 - 將當前視圖控制器設置爲導航根
下面的代碼放在一個視圖控制器的viewDidLoad中似乎有與iOS 7無效果:
[self.navigationController setViewControllers:@[self]];
導航堆棧不發生變化的。
你有沒有經歷過類似的問題?
感謝, DAN
我需要將主屏幕的視圖控制器設置爲導航控制器的根,無論用戶如何達到它(推/顯示或自定義輪播)iOS 7 - 將當前視圖控制器設置爲導航根
下面的代碼放在一個視圖控制器的viewDidLoad中似乎有與iOS 7無效果:
[self.navigationController setViewControllers:@[self]];
導航堆棧不發生變化的。
你有沒有經歷過類似的問題?
感謝, DAN
創建應用程序代理導航控制器的全球參考,然後用的appDelegate的參考,你可以改變你rootView控制器的任何地方,只要輸入以下代碼:
[appDelegate.navigaitonController initWithRootViewController:viewController];
注:這裏viewController是您想要設置爲導航控制器根目錄的新viewcontroller引用。
從應用程序委託調用你的UIViewController方法就像這樣..試試吧。
self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
ViewController* pp = [[ViewController alloc] init];
UINavigationController* nav = [[UINavigationController alloc] initWithRootViewController:pp];
self.window.rootViewController = nav; or [self.window setrootviewcontroller=nav];
[self.window addSubview:[nav view]];
[self.window makeKeyAndVisible];
只有一條線,讓您的當前的viewController作爲RootViewController的
[[[UIApplication sharedApplication] delegate] window].rootViewController = self;
這會更改整個應用程序的根視圖控制器,但不會影響導航控制器堆棧 – DAN
的UINavigationController沒有setRootViewController方法。 在視圖控制器的viewDidLoad中調用[appDelegate.navigationController setViewControllers:@ [self]]不起作用[self.navigationController setViewControllers:@ [self]] – DAN
@DAN您可以在setRootViewController的地方使用initWithRootViewController。 initWithRootViewController是導航控制器的實例方法。 – Alok
如果仍然無法正常工作,請讓我再次瞭解您的代碼塊。我會爲你提供解決方案。 – Alok