iOS navigationController pushViewController无法正常工作

时间:2013-02-26 09:09:15

标签: ios objective-c cocoa-touch uinavigationcontroller storyboard

我有一个UINavigationController的故事板。导航控制器的根视图控制器称为rootViewController。

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

我试图在rootViewController的viewDidLoad中执行此操作,如下所示:

- (void)viewDidLoad
{

    [super viewDidLoad];

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

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

}

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

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

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

任何帮助都会很棒。

由于

2 个答案:

答案 0 :(得分:5)

首先在storyboard中添加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];
    }
}

答案 1 :(得分:0)

如果您正在使用故事板,请在故事板中创建登录视图,使用segue将rootVC链接到loginVC,选择一个标识符(例如:“goToLogin”)。然后进入登录视图,并使用:

[self performSegueWithIdentifier:@"goToLogin" sender:self];