登录视图不会在Xcode 4中的主ViewController之前加载

时间:2011-11-28 21:36:52

标签: ios xcode

以下是我的应用的布局。

  1. 应用程序名
    • LoginViewController.h
    • LoginViewController.m
    • LoginView.xib
    • AppDelegate.h
    • AppDelegate.m
    • ViewController.h
    • ViewController.m
    • ViewController_iPhone.xib
    • ViewController_iPad.xib
  2. 目前在我的AppDelegate.m中我有:

    - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:    (NSDictionary *)launchOptions
    {
        LoginViewController *_loginViewController = [[LoginViewController alloc] initWithNibName:@"LoginView" bundle:[NSBundle mainBundle]];
        self.loginViewController = _loginViewController;
        [_loginViewController release];
        [_window addSubview:[loginViewController view]];                                                                                                                            
    
        self.window = [[[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]] autorelease];
        // Override point for customization after application launch.
        if ([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPhone) {
            self.viewController = [[[ViewController alloc] initWithNibName:@"ViewController_iPhone" bundle:nil] autorelease];
        } else {
            self.viewController = [[[ViewController alloc] initWithNibName:@"ViewController_iPad" bundle:nil] autorelease];
        }
        self.window.rootViewController = self.viewController;
        [self.window makeKeyAndVisible];
        return YES;
    }
    

    我的LoginView.xib将其文件所有者定义为LoginViewController。

    我最初得到一个错误说明:原因:' - [UITableViewController loadView]加载了“LoginView”笔尖,但没有得到UITableView。'“

    我将UITableViewController更改为UIViewController,我能够在没有错误的情况下运行应用程序。现在唯一的问题是我的LoginViewController没有加载。我看到空白的灰色ViewController_iPad.xib加载。

    我在这里缺少什么?

    我可以发布任何其他有用的代码。

    提前致谢!

1 个答案:

答案 0 :(得分:1)

您应该将窗口的根视图控制器设置为self.loginViewController

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:    (NSDictionary *)launchOptions
{
    self.window = [[[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]] autorelease];
    self.loginViewController = [[LoginViewController alloc] initWithNibName:@"LoginView" bundle:[NSBundle mainBundle]];
    [self.loginViewController release];
    self.window.rootViewController = self.loginViewController;                                                                                                                      
    [self.window makeKeyAndVisible];
    return YES;
}