我遇到了MFMailComposeViewController取消按钮的问题。这是我的背景
- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
[[UIApplication sharedApplication] setStatusBarHidden:YES];
}
- (IBAction)showButtonDidTouch:(id)sender {
if ([MFMailComposeViewController canSendMail]) {
MFMailComposeViewController *mailViewController = [[MFMailComposeViewController alloc] init];
mailViewController.mailComposeDelegate = self;
mailViewController.modalPresentationStyle = UIModalPresentationFormSheet;
[self presentModalViewController:mailViewController animated:YES];
[mailViewController release];
}
}
我在viewDidLoad中隐藏状态栏,然后调用显示的mailViewController作为当前的模态视图控制器。但是,问题是当横向模式和uikeyboard中的应用程序出现时,当取消按钮被点击为图像时,操作表不会显示:http://img651.imageshack.us/img651/5489/screenshot20120514at114.png
左上角的小红色图像是操作表。如果我设置statusbarhidden = NO,它会显示出来。
感谢您的帮助,谢谢
答案 0 :(得分:1)
通过注册UIKeyboardWillShowNotification,我能够解决这个问题(我认为这是一个iOS错误)。每当显示键盘时,我手动将我的MFMailComposeViewController的超级视图的帧设置为+/- 20(状态栏高度),具体取决于方向(横向左侧或右侧)。这是一个非常难看的黑客,但它现在对我有用。
答案 1 :(得分:-1)
我用了一个计时器,移动
[self presentViewController:mc animated:YES completion:^(void) {}];
到动作表之外,它也可以。