我的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,这对我没有任何帮助。
编辑:
我正在尝试访问UIViewControllerWrapperView以更改其自动调整属性。但是,根据这篇文章:What is UIViewControllerWrapperView?似乎无法访问。我仍在争取如何找到正确的(或最接近的)视图控制器来更改其属性,以便我没有或更少[subview objectAtIndex:0]的东西。
我想做的是
答案 0 :(得分:0)
我认为没有人理解它,因为你这样做的方式实际上是非标准的,也是一个坏主意。您在寻找什么样的观点?你不应该这样找到它。标准方法是使用XIB或Storyboard并使用IBOutlet将视图从那里连接到ViewController。然后你就可以这样引用它。
如果你不知道怎么做,你可以看this video如何用故事板连接东西。
如果您以编程方式添加此视图,则应在ViewController中创建一个属性,并在该属性中保存对视图的引用。像这样:
@property (nonatomic, strong) YourViewClassType *fancyView;
然后当你创建它时,只需将fancyView设置为你创建的视图。