线程1:在AppDelegate中发出SIGABRT信号

时间:2018-01-29 12:10:45

标签: ios swift xcode

我们的应用程序应该能够从主故事板转到另一个包含通向搜索栏的splitViewController的故事板。 我们在另一个故事板中创建了搜索栏,并将其连接到导航控制器,如下所示:

@IBAction func artikelButton(_ sender: Any) {
    let viewController = self.storyboard!.instantiateViewController(withIdentifier:"MasterViewController")
    self.navigationController?.pushViewController(viewController, animated: true)
} 

如果您按下该按钮,则应用程序会因SIGABRT错误而崩溃。 其他2个按钮工作正常,不同的是它们是.xib文件。 以下是我们制作.xib按钮的方法:

@IBAction func infoButton(_ sender: Any) {
    let vc = InfoViewController(
        nibName: "InfoViewController",bundle: nil)
    navigationController?.pushViewController(vc, animated: true)
}

1 个答案:

答案 0 :(得分:0)

如果从XIB加载viewcontroller。那么self.storyboard总是没有。

如果您使用多个故事板或多个XIB是更好的解决方案 在每个viewcontroller中都有抽象方法练习来从故事板中访问

就像添加以下内容一样(根据你的意愿更改viewcontroller名称和标识符)

// MARK: - Abstract Methods


public class func viewController () -> LoginVC {
    return StoryBoard.main.instantiateViewController(withIdentifier: StoryBoard.controller.LoginVC) as! LoginVC
}



// Now access it with  LoginVC.viewController() and do push or present whatever your operation you requred

我在常量文件中管理所有内容

public struct StoryBoard {

static let main = UIStoryboard.init(name: "Main", bundle: nil)

       struct controller {
           static let LoginVC   =   "LoginView"

         }

}