iOS:从视图中查找uiviewcontroller的类名

时间:2013-10-06 04:57:27

标签: ios objective-c uiview uitabbarcontroller

我的TabBarViewController添加了太多级别的ViewControllers / Views。我必须像这样 - (void)viewDidAppear:动画来配置我想要的正确视图:

[[[[[self.view.subviews[0] subviews][0] subviews][0] subviews][0] subviews][0] setAutoresizingMask:UIViewAutoresizingFlexibleHeight];

这段代码很难看,没有人能理解它。

我想找到对应的视图控制器/视图并在那里进行配置。我试过了

[[[[self.view.subviews[0] subviews][0] subviews][0] subviews][0] subviews][0] class]

然而,它返回UIView,这对我没有任何帮助。

编辑: View hierarchy

我正在尝试访问UIViewControllerWrapperView以更改其自动调整属性。但是,根据这篇文章:What is UIViewControllerWrapperView?似乎无法访问。我仍在争取如何找到正确的(或最接近的)视图控制器来更改其属性,以便我没有或更少[subview objectAtIndex:0]的东西。

我想做的是

1 个答案:

答案 0 :(得分:0)

我认为没有人理解它,因为你这样做的方式实际上是非标准的,也是一个坏主意。您在寻找什么样的观点?你不应该这样找到它。标准方法是使用XIB或Storyboard并使用IBOutlet将视图从那里连接到ViewController。然后你就可以这样引用它。

如果你不知道怎么做,你可以看this video如何用故事板连接东西。

如果您以编程方式添加此视图,则应在ViewController中创建一个属性,并在该属性中保存对视图的引用。像这样:

@property (nonatomic, strong) YourViewClassType *fancyView;

然后当你创建它时,只需将fancyView设置为你创建的视图。