如何在横向iPhone应用程序中运行电子邮件/短信?

时间:2012-04-02 16:07:44

标签: iphone ios sms modalviewcontroller mfmailcomposeviewcontroller

我有一个iPhone应用程序,它只在横向模式下运行,但最近我想添加mail / sms / facebook功能(通过UIButton操作)。最后一个是顺利运行,我启动了网络浏览器(本身管理肖像模式),但启动邮件或短信作曲家让我发疯。 我只是想在横向模式下使用这个应用程序,不包括启动mail / sms / fb(实际上是浏览器)。

当横向显示应用程序屏幕时,我设法以纵向模式设置邮件/短信作曲家,但键盘也出现在风景中,这阻挡了作曲家的左/右半部分 - 用[composer setModalTransitionStyle:UIModalTransitionStyleCrossDissolve]; 或者我正在读这个主题的不好的东西,或者我只是盲目;) - 无论哪种方式需要任何帮助,谢谢

编辑:

我有一个被覆盖的根ViewController:

- (BOOL)shouldAutorotateToInterfaceOrientation

在两种横向模式下都返回YES。这个rootVC正在启动ShareVC,它有3个按钮用于mail / sms / fb。我希望能够启动像浏览网页浏览器这样的东西。邮件和邮件相同短信,但使用模态视图控制器,然后在发送邮件/短信后返回ShareVC ...
我还设置了plist到landscape模式的方向。希望这能澄清我想要做的事情:)

2 个答案:

答案 0 :(得分:0)

尝试将其添加到所需的ViewController:

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
  return interfaceOrientation==UIInterfaceOrientationLandscapeLeft;
}

我附近没有Mac,因此可能存在错误。

希望有所帮助

答案 1 :(得分:0)

问题已修复:) 原来我在childVC上调用present / dismiss modalViewController而不是rootVC本身,这里是代码片段:

-(IBAction)goMail{
    NSLog(@"gomail...");
    MFMailComposeViewController *picker = [[[MFMailComposeViewController alloc] init] autorelease];
    NSUserDefaults *settings = [NSUserDefaults standardUserDefaults];

    if ([MFMailComposeViewController canSendMail]) {
        picker.mailComposeDelegate = self;
        [picker setSubject:@"Hello iPhone!"];

        // Set up recipients
        NSArray *toRecipients = [NSArray arrayWithObject:@"aa@bb.com"];
        [picker setToRecipients:toRecipients];
        [picker setMessageBody:@"mail content..." isHTML:NO];
        [self.controller presentModalViewController:picker animated:YES];
        //[picker release];
    }
}