繁体   English   中英

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

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM