Bezdepbonusu7Программирование: статьи и ответы

Вопрос

Цель C: Как реорганизовать код для контроллеров навигации

Автор вопроса: ming yeowОтветов: 1

У меня есть приложение, которое использует UITabBarController, содержащее 4 разных навигационных контроллера. Например,
1) представление "Канал" Контроллер навигации
2) представление "Самые популярные" Контроллер навигации
3) представление "Новости" Контроллер навигации
4) представление "Дополнительно" Контроллер навигации

Для каждого навигационного контроллера может быть несколько общих контроллеров представления, которые нужно будет поместить в их существующий стек. Например, если я нажму на изображение профиля пользователя, отображаемое как в контроллерах просмотра "Лента", так и в "Новости", они должны поместить контроллер просмотра userProfile в свои стеки.

В настоящее время я вижу, как повторяю такие коды на разных навигационных контроллерах:

UserProfileViewController  *user = [[UserProfileViewController alloc]init];
user.propertyA = XXX;
user.propertyB = YYY;
[self.navigationController pushViewController:user animated:YES];

Я боюсь, что это станет слишком повторяющимся и запутанным, особенно если у вас есть несколько навигационных контроллеров.

Мой вопрос будет заключаться в том, как реорганизовать код так, чтобы всем навигационным контроллерам не нужно было повторять код каждый раз, когда ему нужно загрузить общий контроллер представления.

заранее спасибо

iosobjective-cuinavigationcontroller

Ответы

Ответ 1 · рейтинг 1 · damian

Создайте статический селектор в UserProfileViewController, например:

@interface UserProfileViewController {
...
}

+ (void)pushNewUserProfileViewControllerWithPropertyA:(id)pa
         propertyB:(id)pb
         ontoNavigationController:(UINavigationController*)nav;

@end

и в его реализации поместите эти четыре строки кода из вашего вопроса, но убедитесь, что вы автоматически выпускаете созданный UserProfileViewController.

Перевод вопроса и ответов сообщества Stack Overflow, лицензия CC BY-SA. Оригинал на Stack Overflow.

Похожие материалы