0

我正在尝试指示我的应用打开某个视图,具体取决于用户是否已经在我的数据库上创建了用户配置文件。

所以基本上 -

- (void) viewWillAppear:(BOOL)animated {

//all my ASIHTTPRequest code here
//blah blah blah

NSString *responseString = [request responseString];

if ([responseString isEqualToString:@"noexistingdata"])
{

FriendsViewController *friendsview = [[FriendsViewController alloc] initWithNibName:nil bundle:nil];

//SOMETHING NEEDS TO GO HERE TO MAKE THIS WORK!

} else if ([responseString isEqualToString:@"success"])
{

//do whatever

}

}

我只想要更改视图的最基本代码...我会尝试使用 IBAction,但显然这不起作用,因为这对于应用程序的启动是无效的(而不是对用户按下的按钮的响应),也在虚空中想了想,也没有奏效。

所以基本上我需要的是:

启动应用 > 应用从我的服务器接收响应 > (IF RESPONSE = "THIS", LOAD VIEW "X") (IF RESPONSE = "THAT", LOAD VIEW "Y")

有人有线索吗?

PS:列出这是 applicationDidFinishLaunching 会更好吗?

4

1 回答 1

0

-viewWillAppear:在视图显示之前调用。这可能不是 a) 运行一些同步网络请求和 b) 加载另一个视图控制器的好时机。

我建议让应用程序委托创建一个视图控制器,该控制器的视图仅显示一条消息,例如“连接到服务器”或“检索用户凭据”或其他任何内容。您可以添加一个动画微调器,让用户知道他们应该等待,如果这就是他们现在被允许做的所有事情的话。然后,在显示视图后,例如在该控制器的 -viewDidLoad 方法中,启动异步网络连接以与服务器通信。当您收到响应时,决定接下来要实例化哪个视图控制器,然后执行此操作。

于 2011-03-20T18:39:28.347 回答