0

我在导航栏上有 5 个分段的控制段,我的应用程序要求我只能在一个段内更改视图。现在我UIViews在一个xib中有两个。我设置了一个整数标志,根据该标志,我需要更改视图。我发布这个是因为两个视图在一个 xib 中都有一个表格视图,它们会有不同的行数,不同的cellForRowAtIndexPathdidSelectRowAtIndexPath. 所以两个问题是 - 如何根据标志选择特定视图以及如何管理两个 UIView 的委托方法作为文件所有者会产生问题?如果有人建议使用 UIViewController 创建一个单独的类,那么如何覆盖/替换该特定段的视图?

请注意,我没有使用故事板。应用程序是基于 XIB 的唯一

4

1 回答 1

1

如果我理解这个问题(对我来说不是英语),获取必要数据的方法之一:

  1. 您可以在分配给 XIB 的视图控制器中使用NSArray *subviews = [[self view] subviews];获取所有视图的集合(集合不仅可以包括UIView对象);
  2. 您可以检查属于该类的每个对象[object isKindOfClass:[UIView class]];以找到需要的UIViews
  3. 您可以UIView通过属性确定 s tag(可以在 XIB 中设置);或使用其他一些属性。
  4. 在 found 中UIView,您可以再次获取所有子视图[view subviews];并用于[object isKindOfClass:[UITableView class]];查找所需的表;
  5. 您可以使用UITableView在委托方法中找到的引用来确定委托方法被调用到哪个表。例如:在 - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath方法中你需要检查tableView
于 2013-11-15T12:40:03.650 回答