2013-10-30 54 views
1

你好我試圖在viewDidLoad中在Xcode 5和iOS在viewDidLoad中7推視圖控制器不工作

我使用故事板推視圖控制器。 在ViewDidLoad中,我正在檢查該用戶是否登錄,並且他是否創建了他的個人資料。 如果用戶沒有登錄或他沒有創建他的個人資料,然後推動另一個視圖控制器的登錄/配置文件視圖。 以下代碼無法正常工作。

- (void)viewDidLoad 

if(USER_IS_LOGGED_IN) 
{ 
    if(USER_PROFILE_COMPLETED) 
    { 
     [self sendRequest]; 
    } 
    else 
    { 
     //push profile view  
     UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"Main" bundle:nil]; 
     ProfileViewController *profileViewController = (ProfileViewController *)[storyboard instantiateViewControllerWithIdentifier:@"ProfileView"]; 
     profileViewController.isFromDealView = YES; 
     profileViewController.hidesBottomBarWhenPushed = YES; 
     [self.navigationController pushViewController:profileViewController animated:YES]; 
    } 

    } 
    else 
    { 

    //push login view 
    UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"Main" bundle:nil]; 
    LoginViewController *loginViewController = (LoginViewController *)[storyboard instantiateViewControllerWithIdentifier:@"LoginView"]; 
    loginViewController.isFromDealView = YES; 
    loginViewController.hidesBottomBarWhenPushed = YES; 
    [self.navigationController pushViewController:loginViewController animated:YES]; 


    } 

} 
+0

放入中斷點並檢查它。推送操作是否編譯 – TamilKing

+0

爲什麼不起作用?任何錯誤,你檢查你的navigationController和意見不是零? – Alex

+0

@AshwinDamji:檢查appDelegate是否將rootViewController設置爲NavigationController – TamilKing

回答

0

你爲什麼不從你的viewController創建SEGUE的登錄和個人資料視圖控制器,並使用performSegueUsingIdentifier:加推在prepareforsegue方法

0123方法

- (void)viewDidLoad 
    { 
    if(USER_IS_LOGGED_IN) 
    { 
     if(USER_PROFILE_COMPLETED) 
     { 
      [self sendRequest]; 
     } 
     else 
     { 
      //push profile view  

      [self performSegueWithIdentifier:@"profileSegue" sender:self] ; 
     } 
     } 
     else 
     { 
      //push login view 
      [self performSegueWithIdentifier:@"loginSegue" sender:self] ; 
     } 
    } 

:使用prepareForSegue導航控制器

-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender { 


    if ([segue.identifier isEqualToString:@"profileSegue"]) { 
     ProfileViewController *profileViewController = segue.destinationViewController; 
     profileViewController.isFromDealView = YES; 
     profileViewController.hidesBottomBarWhenPushed = YES; 
} 
else if([segue.identifier isEqualToString:@"loginSegue"]){ 

    LoginViewController *loginViewController = segue.destinationViewController; 
    loginViewController.isFromDealView = YES; 
    loginViewController.hidesBottomBarWhenPushed = YES; 
} 
else{ 
//no segue to push 
} 
} 
0

我一點你的代碼混淆,但任何嘗試這種

- (void)viewDidLoad { 

if(USER_IS_LOGGED_IN) { 
    if(USER_PROFILE_COMPLETED) 
    { 
     [self sendRequest]; 
    } 
    else 
    { 
     //push profile view  
     UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"Main" bundle:nil]; 
     ProfileViewController *profileViewController = (ProfileViewController *)[storyboard instantiateViewControllerWithIdentifier:@"ProfileView"]; 
     profileViewController.isFromDealView = YES; 
     profileViewController.hidesBottomBarWhenPushed = YES; 
     [self.navigationController pushViewController:profileViewController animated:YES]; 
    } 
} else { 

    //push login view 
    UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"Main" bundle:nil]; 
    LoginViewController *loginViewController = (LoginViewController *)[storyboard instantiateViewControllerWithIdentifier:@"LoginView"]; 
    loginViewController.isFromDealView = YES; 
    loginViewController.hidesBottomBarWhenPushed = YES; 
    [self.navigationController pushViewController:loginViewController animated:YES]; 


    }` 
} 
相關問題