Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/38.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/98.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Iphone 如何检查和确定故事板中当前显示的视图控制器?_Iphone_Ios_Storyboard - Fatal编程技术网

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]
inside
ApplicationIDBecomeActive
。当我重新启动应用程序时,
loginAciton
inside
rootViewController
仍会被调用,但无法
presentModalViewController:[self.storyboard InstanceDeviceController的标识符:@“Navigation”]
。为什么?PS.我的
rootViewController
不是
UINavigationController
。它会产生任何错误吗?当您尝试呈现控制器时会发生什么?嗯,信息如此之少,很难判断出问题所在。您是否尝试设置断点和步骤以查看失败原因?您确定您的view控制器是当前显示的视图控制器,您没有其他显示内容谢谢!这很有帮助。是的,我希望
rootViewController
是当前控制器,所以我做了
[self.window makeyeandvisible]
inside
ApplicationIDBecomeActive
。当我重新启动应用程序时,
loginAciton
inside
rootViewController
仍会被调用,但无法
presentModalViewController:[self.storyboard InstanceDeviceController的标识符:@“Navigation”]
。为什么?PS.我的
rootViewController
不是
UINavigationController
。它会产生任何错误吗?当您尝试呈现控制器时会发生什么?嗯,信息如此之少,很难判断出问题所在。您是否尝试设置断点和步骤以查看失败原因?您确定您的view控制器是正在显示的视图控制器,而您没有其他显示内容