0

Я звоню:IOS Непризнанного селектор отправляется, например, для обратного вызова из модального зрения

emailDetailView.navigationItem.leftBarButtonItem = 
    [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemCancel 
                target:self 
                action:@selector(cancel)]; 

emailDetailView.navigationItem.rightBarButtonItem = 
    [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemDone 
                target:self 
                action:@selector(emailAddressSelected:emailAddressReturned:)]; 

UINavigationController *emailDetailNavCon = [[UINavigationController alloc] initWithRootViewController:emailDetailView]; 

[self presentModalViewController:emailDetailNavCon animated:YES] ; 

А вот мои методы ссылаются как отмеченные:

-(void) emailAddressSelected:(NSString *)emailAddressSelectedString { 
    NSLog(@"emailAddressSelected is %@", emailAddressSelectedString); 
    emailAddressReturned = emailAddressSelectedString; 
    [self performSelector:@selector(showMailComposeController)]; 
} 

-(void)cancel { 
    [self.navigationController popToViewController:[self.navigationController.viewControllers objectAtIndex:1] 
              animated:YES]; 
} 

Ни перезвонит из кнопок на child view (Отмена или Готово) делает то, что я ожидал.

Я пытаюсь выяснить, как щелкнуть по образцу ребенка. Отмена Кнопка закрыть модальный вид и показать родительский вид.

Я также пытаюсь выяснить, как нажать кнопку «Готово» в дочернем модальном представлении, выполнить метод emailAddressSelected:(NSString *)emailAddressSelectedString.

В настоящее время вызов метода emailAddressSelected:(NSString *)emailAddressSelectedString генерирует ошибку «Непризнанный селектор, отправленный в экземпляр».

Я пробовал многочисленные варианты предыдущих вопросов, но все равно получаю ошибку или не получаю действия кнопок, которые я ожидаю.

Любая помощь будет оценена по достоинству.

ответ

0

Не знаете, что не так с вашим селектором отмены, но введенный вами селектор неверен. Должно быть

@selector(emailAddressSelected:) 

Но он не будет передавать NSString вашему методу. Он отправит отправителя, который в вашем случае является UIBarButtonItem.

Так что должно быть

-(void) emailAddressSelected:(UIBarButtonItem *)sender 
+0

мне нужно, чтобы быть в состоянии передать обратно параметр с кнопкой Done, хотя. Значение не на кнопке панели, поэтому я не думаю, что это можно сделать. Спасибо хоть. – Jazzmine

+0

Да, вы не сможете передать метаданные в свое целевое действие. Все, что вы получаете, это возможность передать UIControl обратно. В вашем целевом действии вам нужно будет вытащить данные из UITextField или любого другого виджета, содержащего адрес электронной почты. Надеюсь, это поможет? Имеют смысл? – digidigo

 Смежные вопросы

  • Нет связанных вопросов^_^