2013-11-15 17 views
0

我在導航欄上有5個分段的控制段,我的應用程序的需求是這樣的,我必須在一個段內更改視圖。現在我在一個xib中有兩個UIViews。我已經設置了一個整數標誌,並根據該標誌,我需要改變視圖。我張貼這個,因爲這兩個視圖將在一個xib中有一個表視圖,他們將有不同的行數,不同的cellForRowAtIndexPathdidSelectRowAtIndexPath。所以有兩個問題 - 如何根據標誌選擇特定視圖以及如何管理UIViews的委託方法,因爲文件所有者會產生問題?如果有人建議使用UIViewController創建一個單獨的類,那麼如何覆蓋/替換該特定段的視圖?當視圖加載到一個xib文件中時選擇一個特定的UIView

請注意,我不使用故事板。應用程序是基於XIB的唯一

回答

1

如果我明白的問題(英語不是母語對我來說),以獲得必要的數據的方法之一:

  1. 你可以使用NSArray *subviews = [[self view] subviews];爲所有視圖GET集合(集合不僅可以包含UIView對象)在您的視圖控制器中分配給XIB;
  2. 你可以檢查屬於類[object isKindOfClass:[UIView class]];的每個對象來找到需要的UIViews;
  3. 您可以通過屬性tag(可以在XIB中設置)確定UIView;或者使用其他一些屬性。
  4. 找到UIView您可以再次獲得所有子視圖[view subviews];並使用[object isKindOfClass:[UITableView class]];找到需要的表;
  5. 您可以在委託方法中使用參考找到UITableView來確定調用委託方法的表。例如:在 - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath您需要檢查的方法tableView
相關問題