Хорошо, я потратил на это как полдня, и это меня убивает.
Итак, у меня есть 3 контроллера представления, переходящих друг от друга, что-то вроде этого:
Я вызываю UploadDecisionViewController после уничтожения предыдущего View Controller:
[self dismissModalViewControllerAnimated:YES];
[self performSelector:@selector(showUDModalView) withObject:nil afterDelay:0.5];
В моем методе showUDModalView:
- (void)showUDModalView
{
UploadDecisionViewController *udcontroller = [[UploadDecisionViewController alloc] initWithNibName:@"UploadDecisionViewController" bundle:nil];
udcontroller.delegate = self;
[self presentModalViewController:udcontroller animated:YES];
[udcontroller release];
}
UploadDecisionViewController не показывает никаких проблем. UploadDecisionViewController имеет кнопку, при нажатии которой я хочу перейти к FileUploadViewController. Я установил UploadDecisionDelegate, добавил метод для обработки нажатия кнопки:
Внутри протокола UploadDecisionDelegate (UploadDecisionViewController.h):
@protocol UploadDecisionDelegate
//let UOnliveViewController know that a button was selected
- (void)UploadDecisionViewController:(UploadDecisionViewController *)controller madeChoice:(NSString *)whichDirection;
@end
Тогда внутри моего метода IBAction, когда кнопка нажата, у меня есть это:
- (IBAction)decisionSelected:(id)sender
{
[delegate UploadDecisionViewController:self madeChoice:@"upload"];//crashing at this line
}
Когда я запускаю это, в этой строке выше выдается исключение времени выполнения:
2010-06-09 12:48:59.561 UOnlive[4735:207] *** -[UIView UploadDecisionViewController:madeChoice:]: unrecognized selector sent to instance 0x3b65420
2010-06-09 12:48:59.562 UOnlive[4735:207] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '*** -[UIView UploadDecisionViewController:madeChoice:]: unrecognized selector sent to instance 0x3b65420'
2010-06-09 12:48:59.563 UOnlive[4735:207] Stack: (
33502299,
2495698185,
33884219,
33453686,
33306306,
20618,
2982917,
3390286,
3399023,
3394235,
3087839,
2996168,
3022945,
40156505,
33287040,
33283144,
40150549,
40150746,
3026863,
11700,
11554
)
Позвольте мне добавить реализованный метод делегата:
- (void)UploadDecisionViewController:(UploadDecisionViewController *)controller madeChoice:(NSString *)whichDirection
{
NSLog(@"it got to here 245");
[self dismissModalViewControllerAnimated:YES];
if (yesOrNo) {
//open up the FileUploadViewController and proceed to upload
[self performSelector:@selector(showFUModalView) withObject:nil afterDelay:0.5];
}
}
Может кто-нибудь сказать мне, что, черт возьми, происходит? Большое спасибо за помощь ...