【问题标题】:Loading a different XIB file after Application launches in TabBar Application Template在 TabBar 应用程序模板中启动应用程序后加载不同的 XIB 文件
【发布时间】:2010-12-04 13:10:51
【问题描述】:

我正在创建一个应用程序,用户需要先登录,然后才能查看应用程序中的任何内容。为此,我创建了一个名为“AuthView”的新 XIB 文件。

我知道我需要将代码放入 'applicationDidfinishLaunching' 方法中,但我不知道我需要在其中放入什么代码。

我正在使用“标签栏应用程序”模板开发应用程序。

【问题讨论】:

    标签: iphone cocoa-touch login xib


    【解决方案1】:

    默认情况下,ApplicationDidFinishLaunchingWithOptions 方法的结尾如下所示:

    [window addSubview:tabcontroller.view];
    [window makeKeyAndVisible];
    return YES;
    

    添加一个首先出现在所有内容上的 viewController 很容易。首先,将 viewController 添加到您的实现中(显然使用控制器的真实名称):

    #import "InitialScreenViewController.h"
    

    然后通过添加两行来修改 ApplicationDidFinishLaunchingWithOptions 方法的结尾,如下所示:

    [window addSubview:tabcontroller.view];
    initialScreenViewController = [[InitialScreenViewController alloc] init];
    [window addSubview:initialScreenViewController.view];
    [window makeKeyAndVisible];
    return YES;
    

    一旦您验证了登录(或您想要对初始屏幕执行的任何操作),只需在初始屏幕 viewController 中将其关闭,如下所示:

    [self.parentViewController.view setHidden:YES];
    

    这将允许您稍后在需要时再次显示它,例如添加注销和重新登录功能。

    【讨论】:

    • 您好,我尝试了此方法,但应用程序启动时为空白。 :(
    • 好吧,那是我的错误,我没有将视图连接到文件所有者。 :P 您的解决方案效果很好。 :) 谢谢。
    【解决方案2】:

    当您使用标签栏应用程序模板时,您的 UIApplicationDelegate 文件应该有 一个名为 tabBarController 的 UITabBarController ivar。

    您需要删除此 ivar(并将其从您的 mainWindow XIB 文件中删除)。

    完成后,返回 applicationDidfinishLaunching 方法并在窗口中添加身份验证视图,如下所示:

    MyAuthentificateViewController * viewController = [[[MyAuthentificateViewController alloc]initWithNibName:@"XIBFilename" bundle:nil] autorelease];
    [windows addSubview:myAuthentificateViewController.view]];
    

    【讨论】:

      【解决方案3】:

      最好先显示您的身份验证视图。在另一个视图中,放置您的标签栏控制器。

      【讨论】:

        猜你喜欢
        • 2012-04-02
        • 2017-03-30
        • 1970-01-01
        • 2011-09-05
        • 2011-06-25
        • 2020-05-13
        • 1970-01-01
        • 1970-01-01
        • 2013-10-31
        相关资源
        最近更新 更多