Iphone 如何检查和确定故事板中当前显示的视图控制器?
如果应用程序以前在后台,那么在调用Iphone 如何检查和确定故事板中当前显示的视图控制器?,iphone,ios,storyboard,Iphone,Ios,Storyboard,如果应用程序以前在后台,那么在调用applicationIDBecomeActive时,我如何有选择地刷新用户界面 我希望当前视图控制器始终是情节提要中的初始视图控制器。我无法在主AppDelegate.m中获取指向情节提要的指针 如何检查并确定当前显示的是哪个视图控制器?如果您只需要指向情节提要的指针,则可以执行以下操作: UIStoryboard *sb = [[[self window] rootViewController] storyboard]; 其中rootViewControl
applicationIDBecomeActive
时,我如何有选择地刷新用户界面
我希望当前视图控制器始终是情节提要中的初始视图控制器。我无法在主AppDelegate.m
中获取指向情节提要的指针
如何检查并确定当前显示的是哪个视图控制器?如果您只需要指向情节提要的指针,则可以执行以下操作:
UIStoryboard *sb = [[[self window] rootViewController] storyboard];
其中rootViewController
实际上是故事板的初始视图控制器。如果您希望此控制器是当前控制器(如您所说),那么您可以继续,但如果您希望实际更新UI,那么我想您可以发布来自委托的自定义通知(在applicationIDbecomeactive
内),并注册可能有兴趣捕获它的每个控制器,以便它可以更新其UI(或者只需添加self
作为uiapplicationidbecomeactivityfication
的观察者,以捕捉您的代理捕捉到的同一个对象…)
注:如果您的rootViewController
是UINavigationController
,您可以获得当前显示的控制器,如下所示:
id currentController = [[[self window] rootViewController] visibleViewController];
如果您只需要指向故事板的指针,则可以执行以下操作:
UIStoryboard *sb = [[[self window] rootViewController] storyboard];
其中rootViewController
实际上是故事板的初始视图控制器。如果您希望此控制器是当前控制器(如您所说),那么您可以继续,但如果您希望实际更新UI,那么我想您可以发布来自代理的自定义通知(在applicationIDBECOMEACTIVE
)中),并注册可能有兴趣捕获它的每个控制器,以便它可以更新其UI(或者只需添加self
作为UIapplicationIDBECOMEACTIVENOTIFICATION
的观察者,以捕获代理捕获的同一个控制器…)
注:如果您的rootViewController
是UINavigationController
,您可以获得当前显示的控制器,如下所示:
id currentController = [[[self window] rootViewController] visibleViewController];
这篇文章有帮助吗?-例如,另外使用
applicationWillEnterForeground
。AppDelegate
有一个window
属性,但没有故事板。那么我应该怎么做?这篇文章有帮助吗?-例如,另外使用applicationWillEnterForeground
。AppDelegate
有一个window
属性,但没有故事董事会。那我该怎么办?谢谢!这很有帮助。是的,我希望rootViewController
是当前的控制器,所以我做了[self.window makeyeandvisible]
insideApplicationIDBecomeActive
。当我重新启动应用程序时,loginAciton
insiderootViewController
仍会被调用,但无法presentModalViewController:[self.storyboard InstanceDeviceController的标识符:@“Navigation”]
。为什么?PS.我的rootViewController
不是UINavigationController
。它会产生任何错误吗?当您尝试呈现控制器时会发生什么?嗯,信息如此之少,很难判断出问题所在。您是否尝试设置断点和步骤以查看失败原因?您确定您的view控制器是当前显示的视图控制器,您没有其他显示内容谢谢!这很有帮助。是的,我希望rootViewController
是当前控制器,所以我做了[self.window makeyeandvisible]
insideApplicationIDBecomeActive
。当我重新启动应用程序时,loginAciton
insiderootViewController
仍会被调用,但无法presentModalViewController:[self.storyboard InstanceDeviceController的标识符:@“Navigation”]
。为什么?PS.我的rootViewController
不是UINavigationController
。它会产生任何错误吗?当您尝试呈现控制器时会发生什么?嗯,信息如此之少,很难判断出问题所在。您是否尝试设置断点和步骤以查看失败原因?您确定您的view控制器是正在显示的视图控制器,而您没有其他显示内容