1

我有一个LoginViewController扩展类,UIViewController它只显示几分之一秒。在我的AppDelegate.m课堂上,我尝试分配一个UINavigationControllerLoginViewController作为子视图控制器的。在视图变黑之前,我会看到loginViewController的视图(我看到了我在 Interface Builder 中设计的视图)。我不太确定为什么会这样。

除了快速闪烁的视图外,我还在第二代 iPod touch 上运行该应用程序,发现我可以向右滑动拇指并从主屏幕查看应用程序。再滑动一次,我可以看到搜索,但底部的音乐、邮件、Safari 和视频等图标不可见。按下停止按钮会终止应用程序并返回正常的主屏幕。这让我觉得我错误地设置了根视图控制器?respondsToSelector我从 Stack Overflow 上的另一个问题中获取了 if代码。if 阻止了我的代码崩溃,我认为这与 iOS 4 之前的设备有关?当它运行时没有崩溃是当我开始接收登录视图闪烁一次并且主屏幕应用程序只是一个拇指轻扫。

任何帮助表示赞赏。如果我的更多代码有助于解释我的问题,请告诉我,我会发布更多。

编辑:忘记发布 Xcode 版本 4.4 和部署 iOS 目标 4.0

AppDelegate.m

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    window = [[[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]] autorelease];

    mainViewController = [[[MainViewController alloc] initWithNibName:@"MainViewController" bundle:nil] autorelease];
    loginViewController = [[[LoginViewController alloc] initWithNibName:@"LoginViewController" bundle:nil] autorelease];

    navigationController = [[UINavigationController alloc] init];
    [navigationController pushViewController:loginViewController animated:NO];
    if([window respondsToSelector:@selector(setRootViewController:)])
    {
        [window setRootViewController:navigationController];
    }
    else
    {
        [window addSubview:[navigationController view]];
    }

    initWithRootViewController:viewController] autorelease];
    initWithNibName:@"ContainerViewController" bundle:nil] autorelease];

    [window makeKeyAndVisible];
    return YES;
}
4

1 回答 1

0

autorelease在您的窗口创建行中取出。只要应用程序正在运行,您就希望窗口一直存在。

于 2013-04-26T18:16:28.750 回答