如何在objective-c中导航到新故事板文件上的视图控制器

T. *_*ael 5 objective-c ios uistoryboard

我有一个现有应用程序的源代码.在整个应用程序中,开发人员没有使用故事板作为用户界面,而是使用了界面构建器xib文件.作为一个新的开发人员,我不知道如何开发使用文件的iOS应用程序,我的故事板方式.现在我想为应用程序源代码添加更多屏幕,我创建了一个新的故事板文件来定义我的新屏幕,如何从我在其中一个文件中定义的按钮操作导航到这个新故事板的入口点,以便我可以轻松实现我的功能.在搜索时我得到了一些像这样的建议xcodexibviewcontrollerslearntxib

UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"newStoryboard_iPhone" bundle:nil];
MyNewViewController *myVC = (MyNewViewController *)[storyboard instantiateViewControllerWithIdentifier:@"myViewCont"];
Run Code Online (Sandbox Code Playgroud)

但我不认为我明白如何实现这一点,即使这可以在一个按钮IBAction方法.并且随后navigations将通过我在新故事板中定义的视图控制器进行分段

Dmi*_*zov 7

这是正确的建议.你应该通过它的名字获得storyboard对象.然后你应该创建你的viewController [storyboard instantiateViewControllerWithIdentifier:@"..."]; 然后你可以使用适当的导航方法导航到你的新VC.例如:

[self.navigationController pushViewController:vc animated:YES]
Run Code Online (Sandbox Code Playgroud)

您应在Interface Builder的"故事板ID"字段中的"Identity Inspector"部分下设置的ViewController标识符.

那个代码你应该放在IBAction方法中.但更好的方法是用单独的方法提取它.像这样的东西:

- (IBAction)buttonPressed:(UIButton *)sender { 
    [self navigateToMyNewViewController];
}

- (void)navigateToMyNewViewController {
    UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"myNewStoryboard" bundle:nil];
    MyNewViewController *myNewVC = (MyNewViewController *)[storyboard instantiateViewControllerWithIdentifier:@"MyNewViewController"];
    [self.navigationController pushViewController:myNewVC animated:YES];
}
Run Code Online (Sandbox Code Playgroud)

从MyNewViewController导航,您可以根据需要实现.它可能是segues.