应用程序窗口应具有根视图控制器

时间:2012-11-21 07:34:41

标签: iphone objective-c ios rootview

我收到了一个我需要编译的客户端项目,但是当我运行它时会出现错误Application windows are expected to have a root view controller at the end of application launchEXC_BAD_Access (code=2, address=0x0)

据我所知,这是由application:didFinishLaunchWithOptions:中的AppDelegate引起的,但我项目的问题是没有AppDelegate文件。

修改

我尝试在Xcode 4.5.1上运行该项目,现在它正在提供错误address doesn't contain a section that points to a section in a object file.

2 个答案:

答案 0 :(得分:0)

问题是没有AppDelegate文件。这通常是设置根视图控制器的地方

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
  self.window = [[[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]] autorelease];
  // Override point for customization after application launch.
  self.viewController = [[[ViewController alloc] initWithNibName:@"ViewController" bundle:nil] autorelease];

  // set root view controller
  self.window.rootViewController = self.viewController;
  [self.window makeKeyAndVisible];
  return YES;
}

答案 1 :(得分:0)

我还遇到过“应用程序窗口应该有根视图控制器”错误消息。

如果您使用的是故事板并且已经验证:

  1. app委托应用程序:didFinishLaunchingWithOptions方法是 返回TRUE而不做任何其他事情。
  2. 视图控制器在IB中设置为初始视图控制器。
  3. 故事板在“目标摘要”选项卡上进行了适当设置。
  4. 验证您是否在视图控制器实现中创建了“视图”UIView @property和@synthezised它。我经历了这个过程,经历了一个漫长的消除过程,当我意识到我已经创建了一个“视图”UIView属性,其名称与IB创建的链接到视图控制器完全相同。

    希望这有帮助。