iPhone View Controller Зарегистрироваться - PullRequest
2 голосов
/ 06 декабря 2011

Привет, я довольно новичок в разработке для iPhone, собираюсь собрать довольно солидное приложение и просто хочу знать, должны ли контроллеры View, которые используются позже в жизненном цикле приложения, быть зарегистрированы в AppDelegate в начале, только когда они были представлены по мере необходимости.?

Например, я начинаю со страницы входа, для которой требуется UINavigationController, поэтому я регистрируюсь в AppDelegate и меня нет, однако после промежуточной страницы я использую TabController, поэтому я просто представляю его на 3-й странице.или зарегистрируйтесь в AppDelegate?

Больше архитектурного передового опыта на самом деле:)

Ответы [ 3 ]

6 голосов
/ 06 декабря 2011

Когда приложение запускается, загружается основной xib. В основном мы предоставляем самый первый контроллер vie / view, когда приложение запускается в делегате приложения в функции

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions

Этот самый первый контроллер представления может быть UIViewController, UITabBarController, UINavigationController и т. Д. Короче говоря, любой контроллер представления.

Отсюда ваше приложение может продолжить, показывая новые / другие контроллеры представления один за другим различными способами, такими как модальное представление контроллера представления, нажатие контроллера представления (в случае UINavigationController) и т. Д.

0 голосов
/ 07 декабря 2011

Как правило, вы должны создавать экземпляры только тех классов, которые вам нужны для экономии памяти.Если вы создаете свои представления в коде, хорошим способом для этого является использование метода get @property для создания класса.Например, если у вас есть файл заголовка с:

@interface MyClass
   @property (nonatomic, retain) UIView *myView; 
@end

и файлом реализации:

@implementation MyClass

@synthesize myView;

- (UIView *)myView {
   if (myView == nil) {
      myView = [[MyView alloc] init];
      // do more initializations
   }
   return myView;
}

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

[superView addSubView:self.myView];
0 голосов
/ 06 декабря 2011

Хорошо, чтобы ответить на ваш вопрос кратко и просто.Приложения iPhone должны использовать как можно меньше памяти.Таким образом, введение View Controller, когда это необходимо, требует гораздо меньше памяти, чем сохранение всего открытого и работающего от начала до конца.Надеюсь, что это отвечает на ваш вопрос.

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