我想提前道歉,因为我对编程相当陌生,所以如果我没有尽可能的具体说明我的问题,我很抱歉,但无论如何,我会尽我所能解释我的问题,我正在创建一个应用程序,它需要有发送电子邮件的能力,我已经到处查找,尝试了我能找到的每一个示例代码,而且每次我使用代码时,似乎都没有任何东西起作用,我得到了以下错误:
2013-02-03 20:23:39.372 Tones16409:c07警告:企图在
其视图不在窗口层次结构中!
这是我目前在viewcontroller.h文件中使用的代码:
UIViewController <MFMailComposeViewControllerDelegate>
- (IBAction)Mail:(id)sender;这在我的viewcontroller.m文件中:
- (IBAction)Mail:(id)sender {
if ([MFMailComposeViewController canSendMail]) {
MFMailComposeViewController *mail = [[MFMailComposeViewController alloc] init];
mail.mailComposeDelegate = self;
[mail setSubject:@"Subject"];
NSArray *recipient = [NSArray arrayWithObjects:@"mail@example.com", nil];
[mail setToRecipients:recipient];
NSString *body = @"body!";
[mail setMessageBody:body isHTML:NO];
[self presentModalViewController:mail animated:YES];
}
}
- (void)mailComposeController:(MFMailComposeViewController*)controller didFinishWithResult:(MFMailComposeResult)result error:(NSError*)error
{
[self dismissModalViewControllerAnimated:YES];
}我还收到一条消息说,在IOS 6中,self presentModalViewController和self dismissModalViewController都不受欢迎,这是否意味着我不能使用它,或者我做错了什么?
因此,任何帮助我做错的邮件作曲家将不胜感激,并再次对不起,如果我没有足够具体的感谢提前。
发布于 2013-02-04 04:59:34
您可以使用presentModalViewController:animated:来显示模式视图控制器,但现在建议使用新的一个:presentViewController:动画:completion:。新的on拥有一个完成处理程序,您可以获得对代码的更多控制。请注意,新方法需要上面的iOS 5.0。如果您的目标是上面的iOS5.0,您应该使用新的方法。对于dismissModalViewControllerAnimated:,也是如此,请使用disunsViewController动画:completion:代替。
发布于 2013-02-04 05:02:40
警告“警告:尝试显示其视图不在窗口层次结构中!”建议该视图不在Interface中连接或以编程方式连接。
不推荐的警告来自于Xcode检查在项目设置中使用的API。如果将Xcode项目的Build‘IOS部署目标设置设置为iOS 6,那么任何被苹果标记为废弃的API(如presentModalViewController和dismissModalViewController)都将被标记出来。
相反,请分别使用presentViewController: Instead :completion:和DisunsViewController动画:completion:。
发布于 2013-02-04 06:03:55
就像Sudha说的,从iOS6开始使用iOS6,presentModalViewController和dismissModalViewController被废弃,它们与完成一起使用,对于您的情况,这将是零。
https://stackoverflow.com/questions/14680553
复制相似问题