视图仅显示几分之一秒

时间:2013-04-26 18:02:43

标签: ios objective-c autorelease uiwindow

我有一个LoginViewController类扩展UIViewController,只显示一小段时间。在我的AppDelegate.m课程中,我尝试将UINavigationController作为子视图控制器分配LoginViewController。在视图变黑之前我看到loginViewController的视图一瞬间(我看到我在Interface Builder中设计的视图)。我不确定为什么会这样。

除了视图快速闪烁之外,我在第二代iPod touch上运行应用程序并注意到我可以向右滑动拇指并从主屏幕查看应用程序。再刷一下,我可以看到搜索,但底部的图标,如音乐,邮件,野生动物园和视频都不可见。按停止按钮杀死应用程序并返回到正常的主屏幕。这让我觉得我错误地设置了根视图控制器?我在Stack Overflow上从另一个问题中获取了if respondsToSelector代码。如果停止我的代码崩溃我认为与早于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;
}

1 个答案:

答案 0 :(得分:0)

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