我在导航栏上有5个分段的控制段,我的应用程序的要求是我必须仅在一个段内更改视图。现在我在一个xib中有两个UIViews
。我已经设置了一个整数标志,并根据该标志,我需要更改视图。我发布这个是因为视图在一个xib中都有一个表视图,它们将具有不同的行数,不同的cellForRowAtIndexPath
和didSelectRowAtIndexPath
。所以有两个问题 - 如何根据标志选择特定视图以及如何管理UIViews作为文件所有者的委托方法会产生问题?如果有人建议使用UIViewController创建一个单独的类,那么如何覆盖/替换该特定段的视图?
请注意我没有使用故事板。应用程序仅基于XIB
答案 0 :(得分:1)
如果我理解这个问题(英语不是我原生的),那么获取必要数据的方法之一是:
NSArray *subviews = [[self view] subviews];
来获取分配给XIB的视图控制器中所有视图的集合(集合不仅可以包含UIView
个对象); [object isKindOfClass:[UIView class]];
的每个对象,以查找所需的UIViews
; UIView
确定tag
(可以在XIB中设置);或使用其他一些属性。UIView
中,您可以再次获取所有子视图[view subviews];
并使用[object isKindOfClass:[UITableView class]];
查找所需的表格; UITableView
的引用来确定调用委托方法的表。例如:in
您需要检查- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
tableView
方法
醇>