我有一个iPhone应用程序,它只在横向模式下运行,但最近我想添加mail / sms / facebook功能(通过UIButton操作)。最后一个是顺利运行,我启动了网络浏览器(本身管理肖像模式),但启动邮件或短信作曲家让我发疯。 我只是想在横向模式下使用这个应用程序,不包括启动mail / sms / fb(实际上是浏览器)。
当横向显示应用程序屏幕时,我设法以纵向模式设置邮件/短信作曲家,但键盘也出现在风景中,这阻挡了作曲家的左/右半部分 - 用[composer setModalTransitionStyle:UIModalTransitionStyleCrossDissolve];
编辑:
我有一个被覆盖的根ViewController:
- (BOOL)shouldAutorotateToInterfaceOrientation
在两种横向模式下都返回YES。这个rootVC正在启动ShareVC,它有3个按钮用于mail / sms / fb。我希望能够启动像浏览网页浏览器这样的东西。邮件和邮件相同短信,但使用模态视图控制器,然后在发送邮件/短信后返回ShareVC ...
我还设置了plist到landscape模式的方向。希望这能澄清我想要做的事情:)
答案 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];
}
}