Ios 显示带后退按钮的导航控制器
我试图以编程方式显示一个我已经编写好代码的视图,并给它一个后退按钮,以便用户可以轻松地弹出到我的当前视图。这是我唯一可以使用的代码,但它没有显示后退按钮Ios 显示带后退按钮的导航控制器,ios,objective-c,navigationcontroller,Ios,Objective C,Navigationcontroller,我试图以编程方式显示一个我已经编写好代码的视图,并给它一个后退按钮,以便用户可以轻松地弹出到我的当前视图。这是我唯一可以使用的代码,但它没有显示后退按钮 UIStoryboard *storyboard = self.storyboard; UIViewController *root = [[[UIApplication sharedApplication] keyWindow] rootViewController]; UIViewController *controller = [sto
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];
在上面的代码中,我尝试使用“根”viewController初始化navigationController,然后通过pushViewController推送“控制器”视图控制器。当我尝试使用“根”和经过编辑的堆栈跟踪初始化时,这会崩溃
如何使用返回按钮以编程方式打开当前视图的视图
我在stackoverflow上到处都找过了,但这个微妙的场景并没有得到解决。请帮忙
presentViewController:
,而应该使用
pushview控制器:
要首先添加导航控制器,必须将其放入AppDelegate.m中
UIStoryboard *sb=[UIStoryboard storyboardWithName:@"Main" bundle:nil];
UIViewController *vc=[sb instantiateViewControllerWithIdentifier:@"View1"];
UINavigationController *nav=[[UINavigationController alloc]initWithRootViewController:vc];
self.window.rootViewController=nav;
如果您想在点击推杆或其他东西时推送视图,您可以通过以下方式实现:-
[self.navigationController pushViewController:ViewName animated"YES];
如果您想从该视图返回,只需弹出视图(以防返回按钮)即可:-
您的代码是正确的,只需在您的
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:^{
}];
}
到目前为止,最简单的方法是将我使用的视图嵌入到导航控制器中。在界面生成器中,单击视图,然后转到编辑器->嵌入->导航控制器 从这里,可以很容易地将导航栏本身隐藏在-(void)视图中。视图将显示:动画:
- (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];
我遇到的问题是,我不希望我所在的视图位于导航控制器内。我只需要将导航控制器添加到我要更改的视图中,这样他们就可以单击“上一步”按钮返回到没有导航栏的conroller。我唯一的问题是,您的答案要求我的当前视图位于导航视图控制器内#2不在我们的设计中。对于我所在的视图,我不需要导航控制器,但是要显示的视图需要导航控制器,以便它们可以返回到原始页面。
UIStoryboard *storyboard = self.storyboard;
UIViewController *controller = [storyboard instantiateViewControllerWithIdentifier:identifier];
[[self navigationController] pushViewController:controller animated:YES];
[[self navigationController] setNavigationBarHidden:NO animated:YES];