iOS-有关显示和推送控制器的一些问题
这里有三个控制器,iOS-有关显示和推送控制器的一些问题,ios,pushviewcontroller,presentviewcontroller,Ios,Pushviewcontroller,Presentviewcontroller,这里有三个控制器,AViewController,BViewController,CViewController, 第一步:AViewController呈现给BViewController BViewController *BVC = [[BViewController alloc]init]; [self presentViewController:BVC animated:YES completion:nil]; CViewController *CVC = [[CViewControl
AViewController
,BViewController
,CViewController
,
第一步:AViewController
呈现给BViewController
BViewController *BVC = [[BViewController alloc]init];
[self presentViewController:BVC animated:YES completion:nil];
CViewController *CVC = [[CViewController alloc]init];
UINavigationController *nav = [[UINavigationController alloc]initWithRootViewController:CVC];
[self.navigationController pushViewController:nav animated:YES];
第二步:BViewController
推送到CViewController
BViewController *BVC = [[BViewController alloc]init];
[self presentViewController:BVC animated:YES completion:nil];
CViewController *CVC = [[CViewController alloc]init];
UINavigationController *nav = [[UINavigationController alloc]initWithRootViewController:CVC];
[self.navigationController pushViewController:nav animated:YES];
现在,如果我想从CViewController
返回到AViewController
,我应该写什么代码?只需使用以下代码:
self.dismissViewControllerAnimated(true, completion: nil)
关闭C ViewController,因为C ViewController现在位于导航堆栈上。A提供包含ViewB控制器的导航控制器。B视图控制器推送C视图控制器,因此C仍在导航控制器中
您可以在此处查看我的项目:
只需使用以下代码:
self.dismissViewControllerAnimated(true, completion: nil)
关闭C ViewController,因为C ViewController现在位于导航堆栈上。A提供包含ViewB控制器的导航控制器。B视图控制器推送C视图控制器,因此C仍在导航控制器中
您可以在此处查看我的项目:
您应该像这样展示
BViewController
:
BViewController *BVC = [[BViewController alloc]init];
UINavigationController *nav = [[UINavigationController alloc]initWithRootViewController:BVC];
//Setting For Transparent
nav.providesPresentationContextTransitionStyle = YES;
nav.definesPresentationContext = YES;
nav.modalPresentationStyle = UIModalPresentationOverCurrentContext;
[self presentViewController:nav animated:YES completion:nil];
并在BViewController中实现:
- (void)viewWillDisappear:(BOOL)animated {
[self.navigationController setNavigationBarHidden:YES];
}
- (void)viewWillDisappear:(BOOL)animated{
[self.navigationController setNavigationBarHidden:NO];
}
然后,您可以推送到CViewController
:
CViewController *CVC = [[CViewController alloc]init];
[self.navigationController pushViewController:CVC animated:YES];
当你想回到A时,用C简单地调用它:
[self dismissViewControllerAnimated:YES completion:nil];
您应该像这样展示
BViewController
:
BViewController *BVC = [[BViewController alloc]init];
UINavigationController *nav = [[UINavigationController alloc]initWithRootViewController:BVC];
//Setting For Transparent
nav.providesPresentationContextTransitionStyle = YES;
nav.definesPresentationContext = YES;
nav.modalPresentationStyle = UIModalPresentationOverCurrentContext;
[self presentViewController:nav animated:YES completion:nil];
并在BViewController中实现:
- (void)viewWillDisappear:(BOOL)animated {
[self.navigationController setNavigationBarHidden:YES];
}
- (void)viewWillDisappear:(BOOL)animated{
[self.navigationController setNavigationBarHidden:NO];
}
然后,您可以推送到CViewController
:
CViewController *CVC = [[CViewController alloc]init];
[self.navigationController pushViewController:CVC animated:YES];
当你想回到A时,用C简单地调用它:
[self dismissViewControllerAnimated:YES completion:nil];
如果我想一步完成这些,我该怎么做?等我一分钟,我会为你创建一个新的项目,很简单,你可以将它转换为objective-c,你运行我的项目了吗?我刚刚添加了一个gif文件,让你很容易看到结果我已经运行了你的项目,很好,这个问题我已经解决了,但现在,我有了新的问题。现在,我需要展示没有AViewController导航栏的BViewController,我需要推CViewController,它有导航表单BViewController。如果我想一步完成这些,我该怎么做?等一下,我会为你创建一个新的项目,很简单,你可以将其转换为objective-c,你运行我的项目了吗?我刚刚为你添加了一个gif文件,很容易看到结果。我运行了你的项目,很好,这个问题我已经解决了,但是现在,我有了新的问题。现在,我需要展示没有AViewController导航条的BViewController,我需要推CViewController,它有BViewController导航表单。如果有DViewController,EViewController,FViewController,它仍然工作吗?你可以看看我的项目,让你很容易理解。现在,我需要展示没有AViewController导航条的BViewController,我需要推CViewController,它有BViewController导航表单。你的方式不起作用,我在哪里可以找到你的项目?看看我的回答:|如果有DViewController,EViewController,FVIEWontroller,现在,我需要展示没有AViewController导航栏的BViewController,我需要推CViewController,它有导航表单BViewController。你的方式不起作用我在哪里可以找到你的项目?看我的答案:|