我正在使用不同的视图控制器制作应用程序。我的主屏幕位于 main.storyboard 中。其余的视图控制器都有自己的 xib , .h & .m 文件。我正在尝试从主屏幕导航。
-(IBAction)btnSignUpTapped:(id)sender
{
SignUpWithEmailViewController * login = [[SignUpWithEmailViewController alloc] init];
UINavigationController *nav = [[UINavigationController alloc]
initWithRootViewController:login];
[self presentViewController:nav animated:YES completion:NULL];
}
此代码适用于导航到不同的viewcontroller(在本例中为SignUpwithEmailViewController
)。在SignUpWithEmailViewController
我有一个后退按钮,它应该让我回到主屏幕。这是我到目前为止所得到的:
-(IBAction)btnBackTapped:(id)sender
{
ViewController * homeScreen = [[ViewController alloc] init];
UINavigationController *nav = [[UINavigationController alloc]
initWithRootViewController:homeScreen];
[self presentViewController:nav animated:YES completion:NULL];
}
但是作为此代码的结果,屏幕变黑,没有任何反应。我该如何解决这个问题?隐藏我正在使用的导航栏
-(void) viewWillAppear:(BOOL)animated
{
[[self navigationController] setNavigationBarHidden:YES animated:NO];
}
答案 0 :(得分:0)
是的,您必须将名为viewController的插件导入NavigationController, 但如果您不习惯使用模态流 - 关闭presentViewController只需调用:
[self dismissViewControllerAnimated:YES completion:^{
}];
<强>编辑:强>
可能会更有帮助,只是示例,把它放到主视图控制器:
- (void)viewDidAppear:(BOOL)animated
{
[super viewDidAppear:animated];
UIViewController *c = [[UIViewController alloc] init];
c.view.backgroundColor = [UIColor redColor];
[self presentViewController:c animated:YES completion:^{
[self dismissViewControllerAnimated:YES completion:^{
}];
}];
}