2011-12-26 3 views
1

Я разрабатываю приложение для iPad, используя sdk 5 и раскадровку из уже работающего приложения для iPhone (разработанного с помощью separete xibs). Я понимаю, как работает раскадровка, но я хотел бы нажать контроллер представления с аргументами. Кнопка вызывает logIn2 действие, подобное:контроллер точки зрения с аргументами с использованием ios5 и раскадровки

- (IBAction)logIn2: (NSString *)strUser: (NSString *)strPass 
{ 
    userViewController *UserViewController = [[userViewController alloc] initWithNibName:@"userViewController" bundle:nil stringOne:strUser stringTwo:strPass]; 
    //UserViewController.hidesBottomBarWhenPushed = YES; 
    [[self navController] pushViewController:UserViewController animated:YES]; 
} 

это работало правильно, но с sdk 5 возвращает ошибку на первой строке. Как нажимать просмотр с аргументами? Спасибо.

+1

Какое сообщение об ошибке вы получаете? –

+0

ошибка: тип приемника 'userViewController', например, сообщение не объявляет метод с selector 'initWithNibName: bundle: stringOne: stringTwo:' [4] – Jaume

ответ

1

Если вы говорите, что хотите конвертировать свое приложение, чтобы использовать Storyboard и Segues, вы должны сделать Segue для нажатия UserViewController. Поместите некоторые свойства в UserViewController для хранения аргументов. Затем переопределите prepareForSegue и установите в нем свойства. Смотрите этот ответ для более подробной информации:

Properly accessing a segue's destination view controller to assign protocol delegates

1

Довольно очевидно из сообщения об ошибке, что нет метода объявить initWithNibName: bundle: stringOne: stringTwo: 'на вашем UserViewController. Как выглядит ваш UserViewController?

+0

- (id) initWithNibName: (NSString *) nibNameOrNil bundle: (NSBundle *) nibBundleOrNil stringOne: (NSString *) aStringOne stringTwo: (NSString *) aStringTwo { – Jaume

1

Вы объявили пользовательский инициализатор в своем .h-файле? В противном случае только стандартный инициализатор initWithNibName будет найден как селектор, а не назначенный вами - следовательно, сообщение об ошибке.

+0

Объявление его в заголовке недостаточно; нужно также реализовать его в .m. –