Цель C: Как повторно кодировать код для контроллеров навигации - PullRequest
0 голосов
/ 12 июня 2011

У меня есть приложение, которое использует UITabBarController, которое содержит 4 различных контроллера навигации.Например,
1) Представление «Feed» Navigation Controller
2) Представление «Самые популярные» Navigation Controller
3) Представление «News» Navigation Controller
4) Представление «More» Navigation Controller

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

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

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

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

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

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

1 Ответ

1 голос
/ 12 июня 2011

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

@interface UserProfileViewController {
...
}

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

@end

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...