1

我有一个 UINavigationController 并在其上加载了一个控制登录过程的 rootView 到我的应用程序。

我最近在我的应用程序委托中添加了一些代码,当此注销请求发生时检查我的设置包是否有注销请求登录界面。

这就是我在 appdelegate 中为 navigationController 设置 rootView 的方式

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    self.window.rootViewController = self.navigationController; //Adds RootViewController to the NavigationController interface
    // etc
}

我想知道有没有办法重新加载rootViewController?或者在应用程序委托中调用它的方法?

4

1 回答 1

2

可以做,但是很复杂。如果可能,最好避免它,每个应用程序的具体要求会有所不同。如果没有看到您的应用程序的源代码,我们无法告诉您它是如何完成的。

基本过程是您需要从视图中删除所有它们并将所有引用设置为 nil,然后通过代码或再次加载 nib 重新创建它。

一个更好的选择是离开rootViewController它所在的位置,并在其顶部显示一个模式登录视图控制器。用户登录后,发送NSNotification根视图控制器可以观察的消息,并填充其数据。

等到通知发送后隐藏登录控制器,并考虑让根视图控制器在执行与登录有关的任何网络操作时阻塞主线程。这样登录视图(带有“登录... " message?) 将保持可见,直到根视图完全填充。

于 2014-04-22T22:38:08.793 回答