【发布时间】:2010-12-04 13:10:51
【问题描述】:
我正在创建一个应用程序,用户需要先登录,然后才能查看应用程序中的任何内容。为此,我创建了一个名为“AuthView”的新 XIB 文件。
我知道我需要将代码放入 'applicationDidfinishLaunching' 方法中,但我不知道我需要在其中放入什么代码。
我正在使用“标签栏应用程序”模板开发应用程序。
【问题讨论】:
标签: iphone cocoa-touch login xib
我正在创建一个应用程序,用户需要先登录,然后才能查看应用程序中的任何内容。为此,我创建了一个名为“AuthView”的新 XIB 文件。
我知道我需要将代码放入 'applicationDidfinishLaunching' 方法中,但我不知道我需要在其中放入什么代码。
我正在使用“标签栏应用程序”模板开发应用程序。
【问题讨论】:
标签: iphone cocoa-touch login xib
默认情况下,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];
这将允许您稍后在需要时再次显示它,例如添加注销和重新登录功能。
【讨论】:
当您使用标签栏应用程序模板时,您的 UIApplicationDelegate 文件应该有 一个名为 tabBarController 的 UITabBarController ivar。
您需要删除此 ivar(并将其从您的 mainWindow XIB 文件中删除)。
完成后,返回 applicationDidfinishLaunching 方法并在窗口中添加身份验证视图,如下所示:
MyAuthentificateViewController * viewController = [[[MyAuthentificateViewController alloc]initWithNibName:@"XIBFilename" bundle:nil] autorelease];
[windows addSubview:myAuthentificateViewController.view]];
【讨论】:
最好先显示您的身份验证视图。在另一个视图中,放置您的标签栏控制器。
【讨论】: