ios - 透明 ViewController 与 presentViewController 一起工作,但不与 pushViewController 一起工作

标签 ios iphone swift xcode uiviewcontroller

let dialog: FriendCheckInDialogViewController = storyboard?.instantiateViewControllerWithIdentifier("FriendCheckInDialogViewController") as! FriendCheckInDialogViewController
dialog.modalPresentationStyle = UIModalPresentationStyle.OverCurrentContext

如果我用

self.navigationController?.presentViewController(dialog, animated: false, completion: nil)

然后透明度就起作用了。但是 popToRootViewControllerAnimated 没有,所以我不能返回。

如果我用

self.navigationController?.pushViewController(dialog, animated: false)

然后背景变成黑色而不是透明。但是 popToRootViewControllerAnimated 有效,所以我可以返回。

我该怎么办?

最佳答案

您似乎混合了不同的演示风格。

如果您使用 presentViewController 模态显示 View Controller ,则可以使用 dismissViewController 关闭它。在这种情况下,您可以在当前 View Controller 上以模态方式呈现 View Controller 。

如果您将 View Controller 推送到导航 Controller 堆栈上,那么您可以将该 View Controller 弹出,但推送的 View Controller 会替换当前的 View Controller ,因此您不能将其公开“在下面”。

关于ios - 透明 ViewController 与 presentViewController 一起工作,但不与 pushViewController 一起工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38964004/

相关文章:

iphone - GameKit 4.0 尚未准备好迎接黄金时段?停止广告服务

iphone - 从我的 iPhone 抓取 HTTP 请求包

swift - 如何将关联类型约束为协议(protocol)

ios - 语义问题-分配给只读属性

swift - 如何使用 RxSwift 实现 ASButtonNode 目标

ios - 如何在 SFSafariViewController 或 Webview 中打开 Twitterkit

ios - iphone 上的 extjs 应用程序

iphone - 当我在 iPhone 上使用 TFHpple 解析器 HTML 时,已经找到了节点,但是返回的内容是 NULL?

ios - 如何在iOS项目中正确实现Stripe?

ios - TextView 中的按钮