我正在使用storyboard构建我的应用程序。因此,我可以通过拖动按钮预先打开另一个视图控制器。然后我可以在故事板中为segue选择presentation
= over current context
。但是我想要以编程方式执行此操作。我找到了答案,但它说它只适用于ipad。我正在构建一个通用应用程序,所以我想为所有设备工作。
在我的第一个视图控制器
中UIStoryboard *story = [UIStoryboard storyboardWithName:@"Main" bundle:[NSBundle mainBundle]];
UIViewController *middleViewController = [story instantiateViewControllerWithIdentifier:@"FlightMiddleViewController"];
在我的第二个视图控制器中,我放了
的viewDidLoad方法self.modalPresentationStyle = UIModalPresentationOverCurrentContext;
它工作了一段时间。这意味着它透明,然后屏幕黑色。我不知道为什么。
答案 0 :(得分:8)
它适用于iphone,也适用于ios 9> =
这就是你想要做的。
在第一个视图控制器中,在设置应显示的视图之前
Double.parseDouble("123.12")
这也适用于iphone。
答案 1 :(得分:3)
您需要在演示之前设置以下属性。
self.modalPresentationStyle = UIModalPresentationStyle.OverCurrentContext
还将父控制器的definePresentationContext属性设置为true
是的,它仅适用于iPad,因为模式演示和弹出控制器仅在iPad中支持。
答案 2 :(得分:0)
实际上,在iPhone上进行OverCurrentContext
演示风格并不难。看一下iOS 7中引入的UIViewController custom transition。您将了解如何操作。
答案 3 :(得分:0)
对于以编程方式捐赠
performSegue(..
的任何人
在我的情况下,我有一个modal
,它表示一个button
。点按按钮应该按下一个新的viewController
,但是即使Im在fullScreen
modal
因此,经过一番搜索,我发现我正在xcode的storyBoard
中进行设置:
Presentation => fullScreen
。因此,我不得不更改为Current Context