ios8 - 如何在自适应 Storyboard中使用关闭 iPhone 弹出框

标签 ios8 uistoryboard uistoryboardsegue

我是 iOS 开发新手,正在尝试同时学习 Storyboard、Swift 和 iOS 8 的新功能。

我创建了一个非常简单的 Storyboard,它使用 Popover 演示文稿 segue 来显示另一个 View 。在模拟器上,如果我为 iPad 运行它,它会按预期工作。但是,如果我为 iPhone 运行它,而不是弹出窗口,它会在原始 View 之上显示全屏 View 。这可以;但是,没有办法将其关闭并返回原始屏幕。

我看过 WWDC 2014 视频“228 A Look inside presentation controllers”,如果他们完全用代码构建用户界面,他们可以显示一个关闭按钮。

我还观看了“411 Interface Builder 中的新功能” session ,他们说可以在 Interface Builder 中完成,但他们没有展示它,并 promise 如果有人感兴趣,会在实验室中展示如何做到这一点。不幸的是,我没有参加 WWDC 2014,也不认识任何参加过的人。我的谷歌搜索也没有返回任何有用的信息。

最佳答案

就我而言,我有一个小弹出窗口,我想成为 iPhone 和 iPad 上的弹出窗口 - 并希望避免使用带有 Dismiss 的导航栏。发现需要实现两个委托(delegate)调用(Swift 3.0):

extension MyViewController : UIPopoverPresentationControllerDelegate {
    // Needed for iPhone popup
    func adaptivePresentationStyle(for controller: UIPresentationController) -> UIModalPresentationStyle {
        return .none
    }

    // Needed for iPhone in landscape
    func adaptivePresentationStyle(for controller: UIPresentationController, traitCollection: UITraitCollection) -> UIModalPresentationStyle {
        return .none
    }
}

关于ios8 - 如何在自适应 Storyboard中使用关闭 iPhone 弹出框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25860781/

相关文章:

iOS 因 Google 登录而被拒绝。最新的 Google SignIn (4.0.0) 去 safari

iPhone Storyboard - 分配类以在 Storyboard中查看 Controller

swift - 我应该如何处理 shouldPerformSegueWithIdentifier 中的 Alamofire 响应?

ios - 从 UISplitViewController 的详细信息 View Controller 导航到正常的全尺寸 UIViewController

ios - 两个不同的按钮对同一 View Controller 执行 segue,但希望通过一个按钮禁用 segue 的用户交互

ios - 从绿色到红色的颜色百分比

swift - 在 SWIFT 中使用 UIDatePicker(在 UIActionSheet 中)输入日期时 UITextField 中的日期格式

ios - presentViewController 在 IOS 8 中闪烁

ipad - 加载没有 Segue 的 View 表单 StoryBoard

ios - segueForUnwindingToViewController 导致 "Warning: Attempt to present <...> on <...> which is already presenting <...>"