UIViewController: где я могу поставить пользовательскую инициализацию - PullRequest
2 голосов
/ 09 июня 2010

Я очень новичок в разработке для iPhone.Мне интересно, где поставить некоторые пользовательские инициализации переменных экземпляра для моего UIViewController.

Могу ли я использовать initWithNibName:bundle:?

Спасибо.

Ответы [ 3 ]

1 голос
/ 09 июня 2010

initWithNibName:bundle: является назначенным инициализатором и должен использоваться для пользовательской инициализации контроллера представления. Это следует использовать для кода переменной экземпляра, который должен запускаться один раз при создании контроллера представления, за исключением представлений, управляемых этим контроллером представления.

Представления могут приходить и уходить при запуске приложения. Поэтому вы можете инициализировать представление более одного раза из одного объекта контроллера представления. Вы должны поместить код инициализации представления в loadView, если вы не используете перо для вида, или viewDidLoad, если вы используете перо.

0 голосов
/ 09 июня 2010

Полагаю, это зависит от вашей переменной экземпляра.

Если переменная экземпляра видна от клиентов MyViewController, используйте предложение RickiG.

Если это вспомогательная переменная экземпляра, в основном используемая только MyViewController, просто создайте собственную версию initWithNibName:bundle:, которая вызывает версию super, и инициализируйте переменные экземпляра там.

0 голосов
/ 09 июня 2010
- (void) viewDidLoad
{
    [super viewDidLoad];

    //instantiate here...
}

Этот метод вызывается, когда представление готово.Вы можете использовать это.

Редактировать

Хм, вы имели в виду, если вы создаете экземпляр UIViewController со свойством с именем, например, myVariable, и вы хотите, чтобы это было,скажем, myVarible = @"Hello"; тогда вы можете сделать это на экземпляре, если это синтезированное свойство.

MyVC *viewController = [[MyVC alloc] initWithNibName:@"MyNibForMyVC" bundle:[NSBundle mainbundle]];
[viewController setMyVariable:@"Hello"];
...