如何在 objective-c 中导航到新情节提要文件上的视图控制器
How to navigate to a view controller on a new storyboard file in objective-c
我获得了现有应用程序的源代码。在整个应用程序中,开发人员没有使用故事板作为用户界面,而是使用了界面构建器 xib
文件。作为一名新开发人员,我不知道如何在 xcode
中使用 xib
文件为 viewcontrollers
开发 iOS
应用程序,我是 learnt
故事板方式。现在我想向应用程序源代码添加更多屏幕,我创建了一个新的故事板文件来定义我的新屏幕,如何从我在 [=12 之一中定义的按钮操作导航到这个新故事板的入口点=] 文件,以便我可以轻松实现我的功能。
在搜索时我得到了一些这样的建议
UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"newStoryboard_iPhone" bundle:nil];
MyNewViewController *myVC = (MyNewViewController *)[storyboard instantiateViewControllerWithIdentifier:@"myViewCont"];
但我不认为我理解如何实现它,即使这可以在按钮 IBAction
方法中实现。除了随后的 navigations
将通过我在新故事板
中定义的视图控制器进行 segues
MyNewViewController *myVC = [self.storyboard instantiateViewControllerWithIdentifier:@"YOUR_VC_NAME_HERE"];
这将实例化您的 ViewController,从这里您可以像这样展示它
[self presentViewController:myVC animated:YES completion:nil]
该图显示了您设置所指故事板名称的位置
您可以将一个 storyboard
导航到另一个 storybord
:
首先将 viewcontroller
class 导入 appdelegate
.h
AppDelegate *appDelegateTemp = [[UIApplication sharedApplication]delegate];
appDelegateTemp.window.rootViewController = [[UIStoryboard storyboardWithName:@"storyboard_name" bundle:[NSBundle mainBundle]] instantiateInitialViewController];
就像你使用故事板的方式一样,使用
MainViewController *mainVC = [[MainViewController alloc] initWithNibName:@"MainViewController" bundle:nil]
[self.navigationController pushViewController:mainVC animated:YES];
这是正确的建议。
您应该通过名称获取故事板对象。然后你应该使用 [storyboard instantiateViewControllerWithIdentifier:@"..."];
创建你的 viewController
然后您可以使用适当的导航方法导航到新的 VC。例如:
[self.navigationController pushViewController:vc animated:YES]
ViewController 您应该在 Interface Builder 的 "Identity Inspector" 部分下的字段 "Storyboard ID".
中设置的标识符
您应该将代码放在 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];
}
来自 MyNew 的导航ViewController 您可以根据需要实施。可能是segues。
试试这个对我有用,
使用下面的代码行:
UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"Main"bundle:nil];
LoginViewController *loginVC = (LoginViewController*)[storyboard instantiateViewControllerWithIdentifier:@"LoginViewController"];
[self.navigationController pushViewController:loginVC animated:YES];
我们需要设置 storyboard id 如下所述,
我获得了现有应用程序的源代码。在整个应用程序中,开发人员没有使用故事板作为用户界面,而是使用了界面构建器 xib
文件。作为一名新开发人员,我不知道如何在 xcode
中使用 xib
文件为 viewcontrollers
开发 iOS
应用程序,我是 learnt
故事板方式。现在我想向应用程序源代码添加更多屏幕,我创建了一个新的故事板文件来定义我的新屏幕,如何从我在 [=12 之一中定义的按钮操作导航到这个新故事板的入口点=] 文件,以便我可以轻松实现我的功能。
在搜索时我得到了一些这样的建议
UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"newStoryboard_iPhone" bundle:nil];
MyNewViewController *myVC = (MyNewViewController *)[storyboard instantiateViewControllerWithIdentifier:@"myViewCont"];
但我不认为我理解如何实现它,即使这可以在按钮 IBAction
方法中实现。除了随后的 navigations
将通过我在新故事板
MyNewViewController *myVC = [self.storyboard instantiateViewControllerWithIdentifier:@"YOUR_VC_NAME_HERE"];
这将实例化您的 ViewController,从这里您可以像这样展示它
[self presentViewController:myVC animated:YES completion:nil]
该图显示了您设置所指故事板名称的位置
您可以将一个 storyboard
导航到另一个 storybord
:
首先将 viewcontroller
class 导入 appdelegate
.h
AppDelegate *appDelegateTemp = [[UIApplication sharedApplication]delegate];
appDelegateTemp.window.rootViewController = [[UIStoryboard storyboardWithName:@"storyboard_name" bundle:[NSBundle mainBundle]] instantiateInitialViewController];
就像你使用故事板的方式一样,使用
MainViewController *mainVC = [[MainViewController alloc] initWithNibName:@"MainViewController" bundle:nil]
[self.navigationController pushViewController:mainVC animated:YES];
这是正确的建议。
您应该通过名称获取故事板对象。然后你应该使用 [storyboard instantiateViewControllerWithIdentifier:@"..."];
创建你的 viewController
然后您可以使用适当的导航方法导航到新的 VC。例如:
[self.navigationController pushViewController:vc animated:YES]
ViewController 您应该在 Interface Builder 的 "Identity Inspector" 部分下的字段 "Storyboard ID".
中设置的标识符您应该将代码放在 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];
}
来自 MyNew 的导航ViewController 您可以根据需要实施。可能是segues。
试试这个对我有用,
使用下面的代码行:
UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"Main"bundle:nil];
LoginViewController *loginVC = (LoginViewController*)[storyboard instantiateViewControllerWithIdentifier:@"LoginViewController"];
[self.navigationController pushViewController:loginVC animated:YES];
我们需要设置 storyboard id 如下所述,