ios - 如何将 xib 文件设置为 initialViewController?

标签 ios objective-c xcode swift swift2

因为我什至无法与 Storyboard成功合并,我正在尝试切换到 xib 文件。我正在尝试像在 Storyboard中那样将一个 xib 文件设置为 initialViewController,因此首先我在 Storyboard中禁用了该属性。根据谷歌的一些例子,我做了一个应该返回 xib 文件的扩展:

extension UIViewController {
    class func loadFromNibNamed(nibNamed: String, bundle : NSBundle? = nil) -> UIViewController? {
        return UINib(
            nibName: nibNamed,
            bundle: bundle
            ).instantiateWithOwner(nil, options: nil)[0] as? UIViewController
    }

然后从应用程序委托(delegate)调用该类函数并尝试将 xib 文件加载为 Root View Controller ,如下所示:

class AppDelegate: UIResponder, UIApplicationDelegate {

    var window: UIWindow?


    func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
        // Override point for customization after application launch.


        let mainView = UIViewController.loadFromNibNamed("MainView")
        //window?.addSubview(mainView!)
        self.window?.rootViewController = mainView

        return true
    }

我的xib文件名是MainView.xib,上面有一个UIView和一个MainViewController,MainViewController继承自ViewController,还是空的:

enter image description here

enter image description here

enter image description here

无论我尝试什么,我总是得到相同的错误信息:

Failed to instantiate the default view controller for UIMainStoryboardFile 'Main' - perhaps the designated entry point is not set?

最佳答案

您仍将项目设置为使用 Main.storyboard 文件。在项目/常规选项卡中,您需要清除此部分:

enter image description here

如果这样做,您还需要自己创建 UIWindow 并设置应用委托(delegate)的 window 属性,因为如果您不使用 Storyboard ,则不会创建它。参见 How to create an Empty Application in Xcode 6 without Storyboard了解详情。

关于ios - 如何将 xib 文件设置为 initialViewController?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37207468/

相关文章:

objective-c - 我应该在 Xcode 中使用什么工具来查看 FPS?

objective-c - 战胜 "multiple methods named ' xxx :' found"错误

xcode - iOS 模拟器上的控制中心空白 - 没有飞行模式按钮

iphone - 如何在 ios 中切换隐藏和查看密码?

objective-c - NSDictionary 从 API 中分割数据

java - 如何以编程方式将图像下载到 iPad?

objective-c - 使用 MapKit,MKMapview 如何通过在屏幕上垂直对齐两个坐标来定位 map

iphone - 如何在没有 XIB 的情况下将选项卡栏添加到现有 View Controller

ios 创建 'readmore' 。让 superview 依赖于 subview

ios - 如何使空的 UITextView 像 iOS 上的 Notes 一样可滚动?