0

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

[[[[[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 以更改其自动调整大小属性。但是,根据这篇文章:什么是 UIViewControllerWrapperView?似乎无法访问。我仍在努力寻找正确的(或最接近的)视图控制器来更改其属性,以便我没有或更少的 [subview objectAtIndex:0] 东西。

我想做的是

4

1 回答 1

0

我认为没有人理解它,因为您这样做的方式确实不标准,而且是个坏主意。您在寻找什么视图?你不应该这样找到它。标准方法是使用 XIB 或 Storyboard 并使用 IBOutlet 将视图从那里连接到 ViewController。然后,您只需以这种方式引用它。

如果您不知道如何将事物与故事板联系起来,您可以观看此视频。

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

@property (nonatomic, strong) YourViewClassType *fancyView;

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

于 2013-10-06T05:18:35.863 回答