У меня есть дизайн, в котором мне нужно поменять местами два табличных представления, используя один viewcontroller (мне нужно, чтобы для обоих отображался один и тот же заголовок навигации).Поэтому я создал каждое представление таблицы в своем собственном подклассовом классе tableviewcontroller, а затем включил переменную класса для каждого в свой viewcontroller.Каждое табличное представление имеет viewcontroller в качестве родителя и вызывает метод подстановки viewcontrollers, когда необходимо произвести обмен.Этот метод и метод viewDidLoad перечислены ниже:
- (void) viewDidLoad
{
[super viewDidLoad];
[[self navigationItem] setTitle: AddAPhotoViewControllerTitle];
SelectAnAlbumTableViewController *selectAnAlbumTableViewControllerTemp = [[SelectAnAlbumTableViewController alloc] initWithParent: self];
[self setSelectAnAlbumTableViewController: selectAnAlbumTableViewControllerTemp];
[selectAnAlbumTableViewControllerTemp release];
[[self view] insertSubview: [[self selectAnAlbumTableViewController] tableView] atIndex: 0];
}
- (void) switchTableViews
{
if ([[[self selectAnAlbumTableViewController] tableView] superview] == nil)
{
[[self view] insertSubview: [[self selectAnAlbumTableViewController] tableView] atIndex: 0];
[[[self selectAPhotoTableViewController] tableView] removeFromSuperview];
[selectAPhotoTableViewController release];
selectAPhotoTableViewController = nil;
}
else
{
SelectAPhotoTableViewController *selectAPhotoTableViewControllerTemp = [[SelectAPhotoTableViewController alloc] initWithAssetGroup: [[self selectAnAlbumTableViewController] assetGroup] parent: self];
[self setSelectAPhotoTableViewController: selectAPhotoTableViewControllerTemp];
[selectAPhotoTableViewControllerTemp release];
[[self view] insertSubview: [[self selectAPhotoTableViewController] tableView] atIndex: 0];
[[[self selectAnAlbumTableViewController] tableView] removeFromSuperview];
}
У меня есть 2 вопроса:
1) Когда я делаю своп, я вставляю новый просмотр таблицы, анимируяпереход (я не включил код анимации для краткости), затем удаление старого табличного представления из суперпредставления.Это правильный порядок / правильный способ сделать это?Это работает нормально, но мне интересно, нет ли здесь какого-то запаха кода.
2) Используя этот шаблон проектирования, что было бы лучшим способом добавить индикатор активности, который может отображатьсяв то время как каждая таблица загружается?Я пытался внедрить индикатор в viewcontroller, и он, кажется, работал нормально, но я не был уверен, как установить его положение?С точки зрения чего?Центр?Я думаю, это восходит к первому вопросу, который я задал, что такое супервизия и когда, или если вообще есть супервизия?