2014-05-20 71 views
5

我現在面臨一個問題想我UIViewController鏈接,但我得到了我最後的錯誤。代碼不能在窗口層次結構的根視圖

Attempt to present ViewController whose view is not in the window hierarchy 

這裏是我的代碼:

- (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex 
{ 
    NSString *title = [alertView buttonTitleAtIndex:buttonIndex]; 

    if([title isEqualToString:@"Wokay"]) 
    { 
     UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"MainStoryboard" bundle:nil]; 
     UIViewController *vc = [storyboard instantiateViewControllerWithIdentifier:@"Vibes"]; 
     [self.window.rootViewController presentViewController:vc animated:YES completion:nil]; 

    } 
} 

代碼錯誤:

Warning: Attempt to present <ViewController: 0x110634bc0> on <Login: 0x10951e7f0> whose view is not in the window hierarchy! 
+0

你能複製粘貼詳細錯誤嗎? – highwing

+0

如果根視圖控制器的視圖當前不在窗口層次結構中,則無法執行此操作。 – rdelmar

+0

@highwing,只是增加 – user3546239

回答

2

好像你UIViewControllerLogin)是不是在窗口層次。

你可能會增加您的LoginViewController作爲一個UIWindow子視圖。 如果是這樣,將其設置爲UIWindowrootViewController

AppDelegate.m

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

    //Other code parts 

    [self.window setRootViewController:loginViewController]; 
    return YES; 
} 

OR

如果要添加LoginViewController的視圖子視圖中的任何UIViewController中(比如說FirstViewController) ,目前它代替

在你FirstViewController.m

-(void)viewDidLoad{ 
    [super viewDidLoad]; 


    LoginViewController *loginViewController ;//Instantiate LoginViewController here 
    [self presentViewController:loginViewController animated:NO completion:Nil]; 
} 
+0

沒有運氣。我也使用UIViewController。當我設置其他的UIViewController重定向作品,但是當我把其他的UIViewController(登錄),這將使其對卡住。 – user3546239

+0

@ user3546239這樣的問題是:什麼是其他的UIViewController和登錄之間的不同影響?你是否將正確的故事板ID分配給LOGIN? – highwing

相關問題