【问题标题】:Transparent ViewController work with presentViewController, but not pushViewController透明 ViewController 可与 presentViewController 一起使用,但不能与 pushViewController 一起使用
【发布时间】:2016-08-15 22:30:58
【问题描述】:
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 那么它是模态的,你需要使用dismissViewController。如果使用导航控制器和堆栈,那么您可以在前一个视图控制器的顶部显示透明度
  • @Paulw11 酷,工作,谢谢。让它成为一个答案。刚接触 iOS 开发,所以没觉得这个方法那么简单

标签: ios iphone swift xcode uiviewcontroller


【解决方案1】:

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

如果您使用presentViewController 以模态方式呈现视图控制器,则可以使用dismissViewController 将其关闭。在这种情况下,您可以在当前视图控制器上以模态方式呈现视图控制器。

如果您将视图控制器推送到导航控制器堆栈,则可以将该视图控制器弹出,但推送的视图控制器会替换当前视图控制器,因此您不能将其暴露在“下方”。

【讨论】:

    猜你喜欢
    • 2014-03-20
    • 2014-04-05
    • 1970-01-01
    • 1970-01-01
    • 2019-11-14
    • 2012-07-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多