错误“应用程序窗口应具有根视图控制器”(iOS)

时间:2013-10-06 19:13:27

标签: ios objective-c xcode loadview mopub

我创建了一个空白的iPhone应用程序项目,并希望在应用程序启动期间显示全屏广告。

我尝试按照以下指南安装广告:https://github.com/mopub/mopub-ios-sdk/wiki/Interstitial-Integration-For-iOS

这就是我最后所做的:

In ViewController.h

In ViewController.m

实际上所有代码都只是从上一个链接中复制过来。

但是,应用程序运行时会显示错误:

  

应用程序窗口应在应用程序启动结束时具有根视图控制器

我认为这个错误可能与loadView方法有关,因为如果删除loadView方法,错误就会消失。

事实上,这个错误似乎很常见,因为它很容易在互联网上搜索,但我不知道loadView是如何与它相关的,以及如何在我的情况下解决它。

任何解决方案?非常感谢。

4 个答案:

答案 0 :(得分:7)

你可能需要这样做:

添加

#import "ViewController.h" 

到AppDelegate.m的顶部

在AppDelegate.m中,你的应用程序:didFinishLaunchingWithOptions:方法应该有这样的代码。

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    // ... Other code

    // Override point for customization after application launch.
    ViewController *viewController = [[ViewController alloc] init];

    self.window.rootViewController = viewController;
    self.window.backgroundColor = [UIColor whiteColor];
    [self.window makeKeyAndVisible];
    return YES;
}

答案 1 :(得分:2)

UIViewController *vc = [[UIViewController alloc] init];

 [vc.view addSubview:self.tab_controller.view];

 [self.window setRootViewController:vc];

OR

UIViewController *vc = [[UIViewController alloc] init];

 [vc.view addSubview:yourClass.view];

 [self.window setRootViewController:vc];

答案 2 :(得分:1)

如果您开始使用空模板并添加了故事板,则需要执行以下操作:

你需要删除didFinishLaunchingWithOptions中的所有行(return语句除外)

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
        return YES;
}

在项目设置 - >常规中,选择故事板作为主界面

答案 3 :(得分:0)

附加快照可以帮助您enter image description here

在右侧检查属性检查器下有一个选项,要求设置为“是rootView控制器”