2

如果应用程序以前在后台,什么时候applicationDidBecomeActive被调用,我怎样才能有选择地刷新用户界面?

我希望当前视图控制器始终是故事板中的初始视图控制器。我无法在我的 main 中获得指向故事板的指针AppDelegate.m

如何检查并确定当前显示的是哪个视图控制器?

4

1 回答 1

4

如果你只想要一个指向你的故事板的指针,那么你可以这样做:

UIStoryboard *sb = [[[self window] rootViewController] storyboard];

rootViewController实际上,故事板的初始视图控制器在哪里。如果您希望此控制器成为当前控制器(如您所说),那么您很高兴,但如果您想实际更新您的 UI,那么我想您可以从委托(内部applicationDidBecomeActive)发布自定义通知,并且注册每个可能有兴趣捕获它的控制器,以便它可以更新其 UI(或者只是添加self为观察者UIApplicationDidBecomeActiveNotification以捕获与您的委托捕获的相同的控制器......)。

PS。如果您rootViewController是 a UINavigationController,您可以像这样获得当前显示的控制器:

id currentController = [[[self window] rootViewController] visibleViewController];
于 2012-06-26T10:11:35.070 回答