2013-11-15 4 views
0

У меня есть 5 сегментированных сегментов contol на панели навигации, и требование моего приложения таково, что мне нужно изменять представления только в пределах одного сегмента. Теперь у меня есть два UIViews в пределах одного xib. Я установил целочисленный флаг и в зависимости от этого флага мне нужно изменить представления. Я отправляю это, потому что оба представления будут иметь представление таблицы в пределах одного xib, и они будут иметь разное количество строк, разные cellForRowAtIndexPath и didSelectRowAtIndexPath. Итак, два вопроса: как выбрать конкретное представление в зависимости от флага и как управлять методами делегирования обоих UIViews в качестве владельца файла создадут проблемы? Если кто-то предлагает создать отдельный класс с UIViewController, то как перезаписать/заменить представление для этого конкретного сегмента?Выберите конкретный UIView, когда просмотр загружен в один файл xib.

Обратите внимание, что я не использую раскадровки. App основан на XIB-й только

ответ

1

Если я правильно понял вопрос (английский не родной для меня), один из способов получить необходимые данные:

  1. вы можете использовать NSArray *subviews = [[self view] subviews]; для сбора ПОЛУЧИТЬ все просмотры (коллекция может включать в себя не только объекты UIView) в вашем контроллере вида, назначенного XIB;
  2. Вы можете проверить каждый объект, принадлежащий к классу [object isKindOfClass:[UIView class]];, чтобы найти необходимый UIViews;
  3. вы можете определить UIView по положению tag (можно установить в XIB); или использовать для этого некоторые другие свойства.
  4. найдено UIView Вы можете снова получить все подзаголовки [view subviews]; и использовать [object isKindOfClass:[UITableView class]];, чтобы найти необходимую таблицу;
  5. Вы можете использовать ссылку для найденного UITableView в методах делегата, чтобы определить, в какой таблице вызывается метод делегата. Например: в - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath метод необходим. tableView
Смежные вопросы