Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/95.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 如何将xib文件设置为initialViewController?_Ios_Objective C_Xcode_Swift_Swift2 - Fatal编程技术网

Ios 如何将xib文件设置为initialViewController?

Ios 如何将xib文件设置为initialViewController?,ios,objective-c,xcode,swift,swift2,Ios,Objective C,Xcode,Swift,Swift2,因为我甚至无法成功地与故事板进行一次合并,所以我尝试切换到xib文件。我正试图像在故事板中一样将一个xib文件设置为initialViewController,所以首先我在故事板中禁用了该属性。下面是google的一些示例,我制作了一个扩展,应该返回一个xib文件: extension UIViewController { class func loadFromNibNamed(nibNamed: String, bundle : NSBundle? = nil) -> UIVie

因为我甚至无法成功地与故事板进行一次合并,所以我尝试切换到xib文件。我正试图像在故事板中一样将一个xib文件设置为initialViewController,所以首先我在故事板中禁用了该属性。下面是google的一些示例,我制作了一个扩展,应该返回一个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
    }
然后从应用程序委托调用该类函数,并尝试将xib文件作为根视图控制器加载,如下所示:

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,它仍然是空的:

无论我尝试什么,都会收到相同的错误消息:

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

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


如果您这样做,您还需要自己创建UIWindow并设置应用程序代理的
窗口
属性,因为如果您不使用情节提要,则不会创建此属性。有关详细信息,请参阅

当我写下下面的答案时,我并没有像你们所说的那个样改变“常规”选项卡中的任何东西。我刚刚用设置rootviewcontroller的选项在main
中编写了代码,并完成了启动。那么为什么我们需要像你说的那样清除主界面呢?多亏了你的帮助,我成功地启动了应用程序,但现在我有了一个黑屏,尽管我在自定义类中添加了一个带有白色色调的文本标签和一个viewControllermainViewController并删除了UIView。你能帮我开始与xib文件交互吗?因为这样会加载情节提要,如果没有入口点,你的情节提要是无效的。设置主界面值意味着在调用didFinishLaunchingWithOptions之前将加载情节提要。