如何在iOS应用程序中加载初始UIViewController?

时间:2014-01-21 00:56:26

标签: ios iphone objective-c uiviewcontroller

我是iOS开发的新手,我知道我错过了一些简单的东西,但我不确定它是什么......我有一个简单的“Hello World”应用程序,我正试图让我的初始视图控制器加载。

采取的步骤:

  1. 我创建了一个空项目
  2. 我添加了一个扩展UIViewController的自定义视图控制器类:

  3. #import "WebViewController.h"
    
    @interface WebViewController ()
    @end
    
    @implementation WebViewController
    - (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
    {
        self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
        return self;
    }
    
    - (void)viewDidLoad
    {
        [super viewDidLoad];
    }
    
    - (void)didReceiveMemoryWarning
    {
        [super didReceiveMemoryWarning];
    }
    @end
    
    1. 我使用Apple的向导添加了一个故事板。
    2. 我在该故事板中添加了一个视图控制器。
    3. 我将自定义控制器设置为该视图控制器的“自定义类”。
    4. 我选中了“是初始视图控制器”复选框。 storyboard
    5. 但是当我运行应用程序时,我的控制器没有加载(从不调用viewDidLoad)。我错过了什么?

      对于noob问题抱歉...

2 个答案:

答案 0 :(得分:2)

enter image description here

放大图片。如果显示“主界面”,请从此菜单中选择要启动的故事板。在故事板出现在列表中之前,您可能会稍稍摇晃Xcode。如果它现在出现,请尝试保存故事板文件以及清理/构建项目。图片来自raywenderlich.com


在您的应用代理- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions: (NSDictionary *)launchOptions {文件的.m方法中:

UIStoryboard *storyBoard = [UIStoryboard storyboardWithName:
    @"MainStoryboard" bundle:nil];
UIViewController *initViewController = [storyBoard 
    instantiateInitialViewController];
[self.window setRootViewController:initViewController];

答案 1 :(得分:1)

在故事板中你不需要- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil;作为你的故事板,WebViewController是初始视图控制器,所以你在appDelegate中不需要任何东西。 WebViewController将自动调用