我们的应用程序应该能够从主故事板转到另一个包含通向搜索栏的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)
}
答案 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"
}
}