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

Posted

技术标签:

【中文标题】如何在 ios 9 中以编程方式导航到另一个具有“当前上下文”表示的视图控制器,目标 C【英文标题】:How to navigate programmatically to another viewcontroller with "over current context " presentation in ios 9, objective C 【发布时间】:2016-05-05 08:03:57 【问题描述】:

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

这可能吗。 我该怎么做。

在我的第一个视图控制器中

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

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

self.modalPresentationStyle = UIModalPresentationOverCurrentContext;

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

【问题讨论】:

试试这个***.com/a/16134703/3388012 感谢链接。但这不是我的情况。我知道如何以编程方式navigate。我想要的是如何将“演示文稿”设置为over current context.anyway thanx 【参考方案1】:

它也适用于 ios 9 >=

这就是你想要做的。

在您的第一个视图控制器中,在设置应显示的视图之前,

- (IBAction)searchNowAction:(id)sender 

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


    secondViewController.modalPresentationStyle = UIModalPresentationOverFullScreen;
    secondViewController.modalTransitionStyle = UIModalTransitionStyleFlipHorizontal;
    [self presentViewController:secondViewController animated:YES completion:nil];


这也适用于 iphone。

【讨论】:

【参考方案2】:

您需要在呈现之前设置以下属性。

self.modalPresentationStyle = UIModalPresentationStyle.OverCurrentContext

还将父控制器的定义PresentationContext属性设置为true

是的,它仅适用于 iPad,因为仅 iPad 支持模态演示和弹出控制器。

【讨论】:

但如果我们使用拖动来执行此操作,那么我们也可以为 iphone 设置它。 当我们测试时,它正在工作(使用拖放而不是编程方式)。【参考方案3】:

实际上,在 iPhone 上做OverCurrentContext 演示风格并不难。看看UIViewController custom transition,它是在 iOS 7 中引入的。你会发现怎么做。

【讨论】:

【参考方案4】:

对于以编程方式执行performSegue(.. 的任何人

在我的情况下,我有一个 modal 代表一个 button。点击按钮应该会推送一个新的viewController,但它会推送fullScreen,即使我在modal

所以经过一番搜索后,我发现我在 xcode 中设置了storyBoardPresentation => fullScreen。那么我只好改成Current Context

【讨论】:

以上是关于如何在 ios 9 中以编程方式导航到另一个具有“当前上下文”表示的视图控制器,目标 C的主要内容,如果未能解决你的问题,请参考以下文章

如何在 iOS 8 中以编程方式隐藏状态栏 [重复]

在iOS 9.0中以编程方式显示表情符号键盘

iOS 如何在 AppDelegate 中以编程方式设置侧边栏菜单?

在 iOS 中以编程方式创建 UINavigationController

如何在 Android 中以编程方式将图像文件从图库复制到另一个文件夹

无法以编程方式导航到另一个 UIViewController iOS