如何在 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 中设置了storyBoard
:
Presentation => fullScreen
。那么我只好改成Current Context
【讨论】:
以上是关于如何在 ios 9 中以编程方式导航到另一个具有“当前上下文”表示的视图控制器,目标 C的主要内容,如果未能解决你的问题,请参考以下文章
iOS 如何在 AppDelegate 中以编程方式设置侧边栏菜单?
在 iOS 中以编程方式创建 UINavigationController