Presentview(全屏)控制器同时解散View1,这是模型视图本身

问题描述:

我有一个ipad应用程序。Presentview(全屏)控制器同时解散View1,这是模型视图本身

我想打开视图2(种推视图)充满整个屏幕。推视图或UIModalPresentationFullScreen通常如何。但是我的基础视图是视图1也是模态视图。

所以我试图打开视图时,视图1得到解雇......

- (void) handleNewButton :(int)id 
{ 
       [self dismissViewControllerAnimated:YES 
           completion:^{ 
            NewViewController *View2 = [NewViewController alloc] init]; 
            View2.modalPresentationStyle = UIModalPresentationFullScreen; 
            View2.modalTransitionStyle = UIModalTransitionStyleCrossDissolve; 

            [self presentViewController: View2 animated:YES completion:nil]; 

           }]; 

} 

但我认为2是不开放。我知道我不能做推视图。但是有没有办法实现它?

当你这样做dismissViewControllerAnimatedUIViewController(在这种情况下,自己)已经消失了,因为他已经不在屏幕上了,如果它已经被释放或者没有,这是另一个故事。你无法显示View2(很糟糕的名字,它应该是至少ViewController2)的原因是因为你试图从不在屏幕上的UIViewController中显示它。

那么,你可以做什么?

handleNewButton方法的上下文中的当前self,在理论上是由另一个UIViewController提出,从那里你想展示你的View2这是。

可能是我说的最快捷的实现方式,可能是通知here。虽然我会用块来做,所以当创建self时,我会通过一个dismissiCompletionBlock,当UIViewController被解雇时会被调用。

+0

是的,我只给出了问题的问题(正如我提到的观点2)我有我的应用程序的正确命名...。我甚至尝试保存我的视图1呈现在主视图,同时驳回视图1 ..在主视图上按下视图...但我没有得到欲望的结果... – user2813740

+0

[self dismissViewControllerAnimated:是的 完成:^ { NewViewController * View2 = [NewViewController alloc] init]; View2.modalPresentationStyle = UIModalPresentationFullScreen; View2.modalTransitionStyle = UIModalTransitionStyleCrossDissolve; [m_vwMainPage.navigationController pushViewController:partDataView animated:YES]; }]; – user2813740

+0

我用上面的代码实现了这一点。将主视图保存到View1并在关闭view1时按view2 ...。有没有更好的方法来做到这一点...因为我必须保存我的主视图副本......。 – user2813740

尝试,如果你不使用分镜与笔尖名分配NewViewController,

[self dismissViewControllerAnimated:YES 
           completion:^{ 
     NewViewController *n=[[NewViewController alloc]initWithNibName:@"NewViewController" bundle:nil]; 

      View2.modalPresentationStyle = UIModalPresentationFullScreen; 
      View2.modalTransitionStyle = UIModalTransitionStyleCrossDissolve; 
      [self presentViewController: View2 animated:YES completion:nil]; 

          }]; 

,或者如果您使用的是故事板使用标识符得到NewViewController。