虽然我知道改变MFMailComposeViewController
是有道理的,但我冒了风险。
我找到了一些想法,比如
[self presentModalViewController:controller animated:YES]; // Existing line
[[[[controller viewControllers] lastObject] navigationItem] setTitle:@"SomethingElse"];
和
[[[[(MFMailComposeViewController*)vc navigationBar] items] objectAtIndex:0] setTitle:@" SomethingElse"];
但奇怪的是,标题是“SomethingElse”,持续2秒,然后返回到设置的主题。我也尝试了其他解决方案,但输出相同。
我正在使用SHK(ShareKit)连接社交。以下是showViewController
的代码:
if ([vc respondsToSelector:@selector(modalPresentationStyle)])
vc.modalPresentationStyle = [SHK modalPresentationStyle];
if ([vc respondsToSelector:@selector(modalTransitionStyle)])
vc.modalTransitionStyle = [SHK modalTransitionStyle];
[topViewController presentModalViewController:vc animated:YES];
[[[[(MFMailComposeViewController*)vc navigationBar] items] objectAtIndex:0] setTitle:@" "];
[(UINavigationController *)vc navigationBar].barStyle =
[(UINavigationController *)vc toolbar].barStyle = [SHK barStyle];
self.currentView = vc;
答案 0 :(得分:6)
我相信这是iOS4带来的某种保护。
此处明确指出,您不得更改Apple提供的界面。
重要提示:邮件撰写界面本身不可自定义,您的应用程序不得修改。此外,在显示界面后,您的应用程序不允许对电子邮件内容进行进一步更改。用户仍然可以使用界面编辑内容,但忽略程序化更改。因此,您必须在显示界面之前设置内容字段的值。
我知道有些人因此被拒绝。我只是想警告你。
答案 1 :(得分:3)
您只需设置邮件主题即可。意味着[MFMailComposeViewController setsubject:@"yourTitle"]
。然后这将显示为一个标题。但如果你没有在MFMailComposeViewController
主题中写任何内容,那么默认情况下它可以显示“新消息”。