ary*_*axt 7 iphone objective-c uiview ios
我的ViewController中有一堆子视图.
在最后一层我有一个UIView,从这个视图我想调用superview,直到我找到属于我的ViewController的UIView.
是否有可能找出UIView是否属于ViewController?
UIView *someView = self.superView;
while (true)
{
if (someView BELONGS TO VIEWCONTROLLER)
{
// Now we know this view belongs to a VIewController
break;
}
someView = someView.superView;
}
Run Code Online (Sandbox Code Playgroud)
如果要查看某个视图是否在视图控制器管理的层次结构中,并且您有一个指向视图控制器的指针:
BOOL belongsToController = [aView isDescendantOfView:viewController.view];
Run Code Online (Sandbox Code Playgroud)
或者,如果要查看某个视图是否是视图控制器管理的层次结构的根,但您没有指向视图控制器的指针,则可以遍历响应程序链.按照UIResponder的nextResponder文档:
UIView通过返回UIViewController管理它的对象(如果有的话)或超级视图(如果没有)来实现此方法
因此,如果某个视图的下一个响应者是a UIViewController,则该视图必须是与视图控制器关联的视图.
if ([[aView nextResponder] isKindOfClass:[UIViewController class]]) {
// aView is the root of the view hierarchy managed by the view controller
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2355 次 |
| 最近记录: |