2015-07-20 39 views
0

我的MainViewController模態加載另一個視圖。模態視圖不會從子控制器中觸發

@implementation MainViewController 

- (void)viewDidLoad { 
    [super viewDidLoad]; 

    UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"Main" bundle:nil]; 
    UIViewController *uiViewController = [storyboard instantiateViewControllerWithIdentifier:@"splashViewController"]; 
    [uiViewController setModalPresentationStyle:UIModalPresentationCustom]; 
    [uiViewController setModalTransitionStyle:UIModalTransitionStyleCrossDissolve]; 
    [self presentViewController:uiViewController animated:YES completion:nil]; 
} 

當我從AppDelegate加載MainViewController直接,模態視圖被加載。

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { 

    UIViewController *rootController = [[RootViewController alloc] init]; 
    navigationController = [[UINavigationController alloc] initWithRootViewController:rootController]; 
    [navigationController setNavigationBarHidden:true]; 

    self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]]; 
    [self.window setRootViewController:navigationController]; 
    [self.window makeKeyAndVisible]; 
    return YES; 
} 

如果我加載MainViewController作爲另一個控制器的子控制器,則該模態視圖無法加載。

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { 

    self.drawerViewController.leftViewController = self.leftDrawerViewController; 
    self.drawerViewController.centerViewController = self.mainViewController; 
    self.drawerViewController.animator = self.drawerAnimator; 

    UIViewController *rootController = self.drawerViewController; 
    navigationController = [[UINavigationController alloc] initWithRootViewController:rootController]; 
    [navigationController setNavigationBarHidden:true]; 

    self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]]; 
    [self.window setRootViewController:navigationController]; 
    [self.window makeKeyAndVisible]; 
    return YES; 
} 

仍然加載主視圖。只是沒有創建模態視圖。

是什麼導致了這個問題,我該如何解決這個問題?

回答

2

你應該不存在從viewDidLoad方法的另一個視圖控制器,

到那個時候,目前的觀點不符合其視圖hieararchy變動完成後,

您可以提出新的視圖 - 控制viewDidAppear被調用後, 所以你可以將代碼移動到viewDidAppear

+0

看起來好像它現在正在工作,但另一部分似乎失敗了。 –

+1

只要確保您不是一次呈現多個視圖控制器,或者您不是同時呈現和解散它們 – ogres

相關問題