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是不开放。我知道我不能做推视图。但是有没有办法实现它?
答
当你这样做dismissViewControllerAnimated
UIViewController
(在这种情况下,自己)已经消失了,因为他已经不在屏幕上了,如果它已经被释放或者没有,这是另一个故事。你无法显示View2
(很糟糕的名字,它应该是至少ViewController2
)的原因是因为你试图从不在屏幕上的UIViewController
中显示它。
那么,你可以做什么?
在handleNewButton
方法的上下文中的当前self
,在理论上是由另一个UIViewController
提出,从那里你想展示你的View2
这是。
可能是我说的最快捷的实现方式,可能是通知here。虽然我会用块来做,所以当创建self
时,我会通过一个dismissiCompletionBlock
,当UIViewController
被解雇时会被调用。
答
尝试,如果你不使用分镜与笔尖名分配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。
是的,我只给出了问题的问题(正如我提到的观点2)我有我的应用程序的正确命名...。我甚至尝试保存我的视图1呈现在主视图,同时驳回视图1 ..在主视图上按下视图...但我没有得到欲望的结果... – user2813740
[self dismissViewControllerAnimated:是的 完成:^ { NewViewController * View2 = [NewViewController alloc] init]; View2.modalPresentationStyle = UIModalPresentationFullScreen; View2.modalTransitionStyle = UIModalTransitionStyleCrossDissolve; [m_vwMainPage.navigationController pushViewController:partDataView animated:YES]; }]; – user2813740
我用上面的代码实现了这一点。将主视图保存到View1并在关闭view1时按view2 ...。有没有更好的方法来做到这一点...因为我必须保存我的主视图副本......。 – user2813740