контроллер push-представления с аргументами, использующими ios5 и раскадровку - PullRequest
1 голос
/ 26 декабря 2011

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

   - (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 возвращает ошибку в первой строке.Как подтолкнуть взгляд с аргументами?Спасибо.

Ответы [ 3 ]

1 голос
/ 26 декабря 2011

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

1 голос
/ 26 декабря 2011

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

Правильный доступ к контроллеру представления segue для назначения протокольных делегатов

1 голос
/ 26 декабря 2011

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

...