0

我有一个故事板UINavigationController。导航控制器的根视图控制器称为rootViewController。iOS navigationController pushViewController不工作

我试图以编程方式将视图控制器(取决于其他条件)更改为另一个视图控制器loginViewController

我试图做到这一点的viewDidLoad从RootViewController的这样的:

- (void)viewDidLoad 
{ 

    [super viewDidLoad]; 

    loginViewController *viewController = [[loginViewController alloc] init]; 

    [self.navigationController pushViewController:viewController animated:YES]; 

} 

我没有得到任何错误,但它不工作。

它只是加载导航控制器的顶部导航后退按钮,但屏幕的其余部分是黑色的。这就像它不加载任何视图控制器。

我想弄清楚我做错了什么。

任何帮助,这将是伟大的。

感谢

+0

难道你的UINavigationController在AppDelegate中添加您的viewController?像那个UINavigationController * navigation = [[UINavigationController alloc] initWithRootViewController:self.viewController]; – 2013-02-26 09:15:00

+0

loginViewControllers视图是如何初始化的?用xib?在代码中?从故事板?听起来像你推着一个没有视图的ViewController。 – Mattias 2013-02-26 09:17:03

+0

你为什么要在viewdidload中推viewcontroller? – peko 2013-02-26 09:22:58

回答

5

首先在故事板上添加loginViewController类和ViewController类连接到loginViewController类,并给标识符名称为“identifier_Name”。

- (void)viewDidLoad 
{ 

    [super viewDidLoad]; 
    [self performSegueWithIdentifier:@"identifier_Name" sender:nil]; 
} 

-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender 
{ 
    if([[segue identifier] isEqualToString:@"identifier_Name"]) 
    { 
     loginViewController *viewController = [segue destinationViewController]; 
    } 
} 
+0

感谢您的帮助。这工作。 – Sequenzia 2013-02-26 16:09:52

0

如果你使用的故事板,创建故事板登录查看,请将您的rootVC到loginVC与SEGUE,可选择一个识别码(例如:“goToLogin”)。然后去在登录视图,并使用:

[self performSegueWithIdentifier:@"goToLogin" sender:self]; 
相关问题