[英]Thread 1: signal SIGABRT in AppDelegate
我们的应用程序应该能够从主故事板转到另一个故事板,其中包含一个通向搜索栏的splitViewController。 我们在另一个情节提要中创建了搜索栏,并将其连接到导航控制器,如下所示:
@IBAction func artikelButton(_ sender: Any) {
let viewController = self.storyboard!.instantiateViewController(withIdentifier:"MasterViewController")
self.navigationController?.pushViewController(viewController, animated: true)
}
如果再按该按钮,则应用程序将崩溃,并显示SIGABRT错误。 其他两个按钮可以正常工作,区别在于它们是.xib文件。 这是我们制作.xib按钮的方法:
@IBAction func infoButton(_ sender: Any) {
let vc = InfoViewController(
nibName: "InfoViewController",bundle: nil)
navigationController?.pushViewController(vc, animated: true)
}
如果从XIB加载ViewController。 然后self.storyboard
将始终为零。
如果您使用多个情节提要板或多个XIB,则更好的解决方案是在每个视图控制器中都有抽象方法实践,以从情节提要板进行访问
就像添加以下内容(根据您的需要更改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"
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.