我正在尝试以编程方式显示我已经编码的视图,并给它一个后退按钮,以便用户可以轻松弹回我当前的视图。这是我可以使用的唯一代码,但它没有显示后退按钮!
UIStoryboard *storyboard = self.storyboard;
UIViewController *root = [[[UIApplication sharedApplication] keyWindow] rootViewController];
UIViewController *controller = [storyboard instantiateViewControllerWithIdentifier:@"Privacy"];
UINavigationController *navigationController = [[UINavigationController alloc] initWithRootViewController:controller];
navigationController.modalPresentationStyle = UIModalPresentationCurrentContext;
[root presentViewController:navigationController animated:YES completion:nil];
我尝试使用" root"初始化navigationController。在上面的代码中查看viewController,然后按下"控制器"通过pushViewController查看控制器。当我尝试使用" root"带有编辑堆栈跟踪。
如何以编程方式打开带有后退按钮的视图到当前视图?
我已经在stackoverflow上到处查找,并且没有解决这个细微差别的情况。请帮忙!
答案 0 :(得分:3)
presentViewController:
,而是使用
pushViewController:
答案 1 :(得分:0)
首先要添加导航控制器,你必须把它放在你的AppDelegate.m
中UIStoryboard *sb=[UIStoryboard storyboardWithName:@"Main" bundle:nil];
UIViewController *vc=[sb instantiateViewControllerWithIdentifier:@"View1"];
UINavigationController *nav=[[UINavigationController alloc]initWithRootViewController:vc];
self.window.rootViewController=nav;
如果你想点击一个putton或者你可以通过以下方式实现这个目标的推动视图: -
[self.navigationController pushViewController:ViewName animated"YES];
如果你想从那个视图返回,你可以通过弹出视图(以防万一你的后退按钮)来实现: -
[self.navigationController popViewControllerAnimated:YES];
答案 2 :(得分:0)
您的代码是正确的,只需在PrivacyViewController
在viewDidLoad
self.navigationItem.leftBarButtonItem = [[UIBarButtonItem alloc] initWithImage:[UIImage imageNamed:@"back_arrow"] style:UIBarButtonItemStylePlain target:self action:@selector(goPrevious)];
方法就像:
- (void)goPrevious {
[self dismissViewControllerAnimated:TRUE completion:^{
}];
}
答案 3 :(得分:0)
到目前为止,最简单的方法是将我正在使用的视图嵌入到导航控制器中。在“界面”构建器中,单击视图,然后转到编辑器 - >嵌入 - >导航控制器。
从这里开始,很容易隐藏导航栏本身 - (void)viewWillAppear:animated:
- (void)viewWillAppear:(BOOL)animated {
//Hide the nav bar for the onboarding screens.
[[self navigationController] setNavigationBarHidden:YES animated:YES];
}
然后,这是使用自动填充的后退按钮转到另一个页面的代码:
UIStoryboard *storyboard = self.storyboard;
UIViewController *controller = [storyboard instantiateViewControllerWithIdentifier:identifier];
[[self navigationController] pushViewController:controller animated:YES];
[[self navigationController] setNavigationBarHidden:NO animated:YES];