我在打电话:
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];
}
从子视图上的按钮(取消或完成)回调都没有按照我的预期进行。
我正在试图弄清楚如何点击子模态视图取消按钮关闭模态视图并显示父视图。
我也想弄清楚如何点击子模态视图中的Done按钮执行emailAddressSelected:(NSString *)emailAddressSelectedString
方法。
现在,对emailAddressSelected:(NSString *)emailAddressSelectedString
方法的调用正在生成“发送到实例的无法识别的选择器”错误。
我尝试过以前的问题,但仍然遇到错误,或者没有得到我期望的按钮操作。
任何帮助都将不胜感激。
答案 0 :(得分:0)
不确定取消选择器有什么问题,但您的完成选择器不正确。应该是
@selector(emailAddressSelected:)
但是它不会将NSString传递给你的方法。它将传递发件人,在您的情况下是UIBarButtonItem。
那应该是
-(void) emailAddressSelected:(UIBarButtonItem * )sender