Я немного здесь потерялся. У меня есть базовое описание основной детали, и я хочу изменить представление детали в соответствии с выбранной строкой в MasterViewController, но представления имеют разное содержимое, у одной есть галерея изображений, а другая будет загружать видео в полноэкранном режиме. Он не просто обновляет подробный вид, должен загружать другое представление. Как лучший (быстрый) способ сделать это?
Измените подробный вид из приложения MasterDetail iPad с помощью раскадровки
Ответ 1
Я предлагаю вам использовать замену segue.
Просто создайте segue для желаемого представления, инициированного вашей строкой, с Стиль: Заменить и Назначение: Подробное разделение.
Segues были представлены в SDK iOS 5
EDIT:
Это пошаговые инструкции для выполнения того, что вам нужно. Отныне:
- элемент, который нужно нажать для выполнения действия (кнопка или строка в главном представлении) = * Кнопка;
- вид, который вы хотите разместить в подробном представлении iPad = * Подробнее.
немного для обозначения для удобства объяснения
- Удерживая нажатой кнопку Ctrl, нажмите * кнопку, затем удерживайте и перетащите в * Подробнее и отпустите, чтобы создать свой сегмент.
- В раскрывающемся списке выберите Заменить
- Выберите свой segue, откройте Attributes инспектор и установите Destination в Подробно Split
Что все.
Подробнее о segues: http://www.scott-sherwood.com/?p=219
Ответ 2
В частности, в CS193P проверьте последнюю версию и посмотрите лекцию № 7. Пол не заканчивает часть с заменой Segue, но он ПРЕДОСТАВЛЯЕТ пример с очень хорошим многоразовым кодом (Психолог с Dr Pill)
Ответ 3
Если вы используете динамическое представление таблицы в своем MasterViewController, выполните раздел numberOfRowsInSection: (NSInteger) Метод с:
return [_youDataArrayNameHere count];
тогда на cellForRowAtIndexPath настройте ячейку:
cell.textLabel.text = [_youDataArrayNameHere objectAtIndex:indexPath.row];
и в файле didSelectRowAtIndexPath вызовите любое другое представление, основанное на выбранной строке:
//
if (indexPath.row == 0) {
[_detailViewController.navigationController pushViewController:[self.storyboard instantiateViewControllerWithIdentifier:@"anotherVC01Here"] animated:YES];
}