Iphone 如何使所有视图都处于活动状态?

Iphone 如何使所有视图都处于活动状态?,iphone,ios,uiview,uikit,uiwindow,Iphone,Ios,Uiview,Uikit,Uiwindow,当我递归地列出从窗口开始的所有子视图时(从迭代视图的所有子视图的[[UIApplication sharedApplication]windows]),我不会得到应用程序的所有视图 当我在Interface Builder中将标记指定给工具栏或导航栏上的按钮时,我无法使用viewWithTag:方法(从窗口或视图实例开始)找到这些按钮。但大多数时候我都会发现一个带标签的工具栏或导航栏 当我以编程方式从按钮、工具栏等调用superview返回时,我通常不会返回到窗口 有没有办法找到应用程序中所有活

当我递归地列出从窗口开始的所有子视图时(从迭代视图的所有子视图的
[[UIApplication sharedApplication]windows]
),我不会得到应用程序的所有视图

当我在Interface Builder中将标记指定给工具栏或导航栏上的按钮时,我无法使用
viewWithTag:
方法(从窗口或视图实例开始)找到这些按钮。但大多数时候我都会发现一个带标签的工具栏或导航栏

当我以编程方式从按钮、工具栏等调用superview返回时,我通常不会返回到窗口


有没有办法找到应用程序中所有活动视图?

要获取所有视图,必须等待创建所有视图。这需要一些时间

我像
[self displayViews]
一样调用了
viewDidLoad
我的转储函数,只得到了部分视图(因为其余视图还没有创建)

获取所有视图的正确方法是调用
performSelector
,因为这会在同一威胁内将请求排队,但会等待一段时间:

[self performSelector:@selector(displayViews) withObject:nil afterDelay:1.0f];

备注:分配给Interface Builder中工具栏按钮的标记不会显示,因为按钮的编码不同,这意味着按钮确实会显示,但标记值为
0

在@progrmr nice little snippet中有相应的代码-感谢分享链接到代码片段的链接。但这并不能解决问题。实际上,我使用了类似的代码来获取所有子视图。如果您使用Interface Builder创建一个视图,并添加一个带有按钮的工具栏,您将无法获取按钮视图和工具栏!如果您创建一个导航栏,您将在列表中看到导航栏,但我不确定它是否是正确的实例。因为,如果在IB中为导航栏指定一个标记号,则列出的导航栏将有一个值为0的标记!