如何在ios 9,目标C中以编程方式导航到另一个具有“当前上下文”演示的viewcontroller

时间:2016-01-28 04:55:41

标签: ios objective-c navigation storyboard

我正在使用storyboard构建我的应用程序。因此,我可以通过拖动按钮预先打开另一个视图控制器。然后我可以在故事板中为segue选择presentation = over current context。但是我想要以编程方式执行此操作。我找到了答案,但它说它只适用于ipad。我正在构建一个通用应用程序,所以我想为所有设备工作。

  • 这可能。
  • 我该怎么办呢。

在我的第一个视图控制器

UIStoryboard *story = [UIStoryboard storyboardWithName:@"Main" bundle:[NSBundle mainBundle]];
UIViewController *middleViewController = [story instantiateViewControllerWithIdentifier:@"FlightMiddleViewController"];

在我的第二个视图控制器中,我放了

的viewDidLoad方法
self.modalPresentationStyle = UIModalPresentationOverCurrentContext;

它工作了一段时间。这意味着它透明,然后屏幕黑色。我不知道为什么。

4 个答案:

答案 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