2016-01-22 56 views
0

我有一個viewController由應用程序啓動中的故事板實例化,這是混合應用程序的一部分。除此之外,我還介紹了一個視圖控制器。現在,當解散presentedViewController時,我想關閉rootViewController以顯示混合應用程序屏幕。我怎樣才能做到這一點?關閉按鈕抽頭上的rootViewController

+0

能否請您分享您的代碼,你如何展示你的RootViewController的和otherViewController – iOSEnthusiatic

+0

[_arViewController setOnlyShowItemsWithinRadarRange:YES]; [self presentViewController:_arViewController animated:NO completion:nil]; } 這就是我如何呈現第二個ViewController。第一個是故事板的默認視圖控制器 –

+0

它將關閉呈現的ViewController。我想解散/刪除rootViewController以及混合應用程序屏幕應顯示。 –

回答

0
[self dismissViewControllerAnimated:YES completion:^{ 


// after your second view controller dismissed. 
// set your new view controller as a root of window. 
// You need to set navigation controller and set any root view controller for that navigation controller in storyboard. 
// also don't forget to set identifier of your navigation controller. 


    UINavigationController* rootController = [[UIStoryboard storyboardWithName:kStoryboardName bundle:[NSBundle mainBundle]] instantiateViewControllerWithIdentifier:@"controllerIdentifier"]; 

    UIWindow* window = [[UIApplication sharedApplication] keyWindow]; 
    window.rootViewController = rootController; 

    // this will set your new navigation controller with root view on UIWindow. 

}]; 
+0

「在呈現的ViewController上找不到屬性窗口」錯誤 –

+0

請參閱我編輯的答案 – iOSEnthusiatic

+0

我想僅刪除根視圖控制器,而不是將其更改爲某些其他控制器。然後只有混合應用程序屏幕可以點擊它。現在,原生應用程序屏幕仍然處於混合應用程序屏幕之上,因此混合應用程序不會接受任何點擊 –

1

好的,我對Worklight一無所知。或者什麼是混合應用程序。所以這可能沒有意義。但是,對於你的問題,這是嚴格的iOS回答。

如果沒有用另一個視圖控制器替換它,關閉根視圖控制器並沒有什麼意義。如果你這樣做,你會離開你的應用程序無法與之交互(除了可能搖動手機?)。

所以沒有辦法像使用子視圖控制器一樣解僱它。但你可以刪除它。

UIWindow *keyWindow = [UIApplication sharedApplication].keyWindow; 
[keyWindow.rootViewController.view removeFromSuperview]; 
keyWindow.rootViewController = nil; 
0
NSMutableArray *viewControllers = [self.navigationController.viewControllers mutableCopy]; 
[viewControllers removeObjectAtIndex:0]; 
[self.navigationController setViewControllers:viewControllers];