Swift performSegueWithIdentifier 显示黑屏

标签 swift screen viewcontroller

我已经阅读了很多关于这个问题的不同帖子,但似乎没有一个解决方案适合我。

我启动了一个新的应用程序,并将初始的 ViewController 放在导航 Controller 中。我创建了第二个 View ,并使用 segue 在 Storyboard上将它们链接在一起。 segue 成功运行,我可以从第二个屏幕的打印语句中看到我正在传输的数据,但屏幕显示黑色。

欢迎屏幕:

override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
    if segue.identifier == "segueToTraits"{
        if let gender = self.selectedGender{
            let traitVC = segue.destinationViewController as? TraitViewController
            traitVC!.gender = gender
        }
    }
}

func sendGenderToTraitsView(gender : String?){
    performSegueWithIdentifier("segueToTraits", sender: self)

}

@IBAction func button1(sender: UIButton) {
    selectedGender = boyGender
    self.sendGenderToTraitsView(selectedGender)
}


@IBAction func button2(sender: UIButton) {
    selectedGender = girlGender
    self.sendGenderToTraitsView(selectedGender)
}

Storyboard: Link to image of my storyboard 我的segue设置如下: Link to image of my segue information

另外,我的 viewController 被命名为 WelcomeViewController 和 TraitViewController。他们有 welcomeVC 和 traitsVC 的 Storyboard ID。

任何帮助将不胜感激。如果您需要任何其他信息,请告诉我。

最佳答案

按照@ronatory 在接受的答案中为我制定的非常好的步骤,我能够看到我已经将 TraitViewController 设置为 UIPageViewController 而不是 UIViewController..所以它没有生成任何错误,但它只是把我带到黑屏。感觉很傻,我通读了我的代码很多次却从未注意到这一点。

要点:如果您在 ViewController 上随机出现黑屏,请确保您的类正在扩展正确的父类。 就我而言:

class TraitViewController: UIPageViewController {

需要

class TraitViewController: UIViewController {

关于Swift performSegueWithIdentifier 显示黑屏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39929877/

相关文章:

screen - 控制主题背景的纵横比(Android)

iphone - 如何从 Storyboard 或快速在导航 View Controller 中添加默认后退按钮?

ios - UIWebView 的 Swift onfinish 加载事件

xcode 4.5 中的 iPhone 5 显示的是 320x640 而不是 640x1136 为什么会出现异常?

html - 网站布局在不同的屏幕分辨率下变得凌乱

ios - 快速从单独的类访问 label.text

ios - 如何在没有 Storyboard的情况下设置 ViewController 的框架

ios - 如何在 Swift 中分配 CoreData 多对多关系?

swift - 合并 GPS 点以加快计算速度

ios - 我应该如何正确重构我的应用程序?