- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
问题:在我将 MFMailComposerViewController
作为模态视图呈现和取消后,我的状态栏出现在 navigationBar
的顶部。
-(IBAction)openMail:(id)sender
{
MFMailComposeViewController *mc = [[MFMailComposeViewController alloc] init];
mc.mailComposeDelegate = self;
[mc setSubject:emailTitle];
[mc setMessageBody:messageBody isHTML:YES];
[mc setToRecipients:toRecipents];
[mc.navigationItem.leftBarButtonItem setTintColor:[UIColor colorWithRed:144/255.0f green:5/255.0f blue:5/255.0f alpha:1.0f]];
[self presentViewController:mc animated:YES completion:NULL];
}
- (void) mailComposeController:(MFMailComposeViewController *)controller didFinishWithResult:(MFMailComposeResult)result error:(NSError *)error
{
switch (result)
{
case MFMailComposeResultCancelled:
NSLog(@"Mail cancelled");
break;
case MFMailComposeResultSaved:
NSLog(@"Mail saved");
break;
case MFMailComposeResultSent:
NSLog(@"Mail sent");
break;
case MFMailComposeResultFailed:
NSLog(@"Mail sent failure: %@", [error localizedDescription]);
break;
default:
break;
}
// Reset background image for navigation bars
[[UINavigationBar appearance] setBackgroundImage:[UIImage imageNamed:@"navigationBar.png"] forBarMetrics:UIBarMetricsDefault];
NSLog(@"%@",[GGStackPanel printFrameParams:self.view]);
// Close the Mail Interface
GGAppDelegate * appDel = [[UIApplication sharedApplication] delegate];
HHTabListController * contr = (HHTabListController*)appDel.viewController;
[contr setWantsFullScreenLayout:NO];
NSLog(@"%i",[contr wantsFullScreenLayout]);
[self dismissViewControllerAnimated:YES completion:NULL];
}
Stackoverflow 上有几个类似的问题,但没有一个建议的解决方案适合我。我已经试过了:
status bar and Navigation bar problem after dismissed modal view
http://developer.appcelerator.com/question/120577/nav-bar-appears-underneath-status-bar
我尝试在 AppDelegate 中展示和解散,没有帮助。
更改 View 框架或 navigationBar 框架可行,但我必须对应用程序中的所有其他 View 执行相同的操作(其中有很多)。这将使我的整个应用程序都依赖于这个小错误。
关闭 MailComposer 后:
最佳答案
wantsFullScreenLayout 是一些复杂且无关的东西。所有 View Controller 都需要嵌入到“布局” View Controller (Apples UINavigationController,Apple 的 UITabBarController)中,或者完全实现“我应该有多大,我应该放在哪里?”的复杂逻辑。他们自己。
Apple 决定在 iOS 1.0 中,您看到的 iPhone 主视图不会从 0,0 开始。包含它的窗口从 (0,0) 开始,但它被状态栏覆盖。
我认为这是他们后悔的决定,在当时是有道理的,但从长远来看,它造成了很多错误。
净效果是:
(代码)
UIViewController* rootController = // in this case HHTabController?
UIView* rootView = rootController.view;
CGRect frame = rootView.frame;
CGPoint oldOrigin = frame.origin;
CGPoint newOrigin = // calculate this, according to Apple docs.
// in your current case, it should be: CGPointMake( 0, 20 );
frame.origin = newOrigin;
frame.size = CGSizeMake( frame.size.width - (newOrigin.x - oldOrigin.x), frame.size.height - (newOrigin.y - oldOrigin.y) );
rootView.frame = frame;
...显然,每次都必须这样做很烦人。这就是为什么 Apple 强烈鼓励大家使用 UINavigationController 和/或 UITabBarController :)
关于ios - 在 MailComposer 关闭后,StatusBar 位于 navigationBar 之上,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15981888/
我使用来自 Github 的 JTRevealSidebar。当我单击左侧边栏中的单元格(反馈)时遇到问题,我想打开 MailComposer。 MailComposer 已打开,但仅在左侧边栏中打开
我遇到了一个新问题。 我的应用程序中有自定义导航 Controller 。我必须向导航栏添加一个图像,并且我在我的 AppDelegate 中使用了这段代码- @implementation UINa
这个问题在这里已经有了答案: MFMailComposeViewController view does not dismiss 2nd time (1 个回答) 关闭 5 年前。 我尝试使用 Ma
我想在邮件编辑器打开时显示键盘而不采取任何操作。我的意思是当邮件编辑器自动打开时应该显示键盘。 最佳答案 据我所知,这是不可能的。您也许可以遍历 mailComposer 的 View 来查找适当的文
我使用 Apple 的 MailComposer 代码,但是当我尝试运行我的应用程序时,我收到一条错误消息,并且无法构建我的应用程序。 我收到的消息错误: Undefined symbols for
我有一个非常奇怪(和严重)的问题。 我的应用程序使用 UIDocumentInteractionController 来共享 PDF 文档。 当用户在 Controller 的弹出窗口中选择“邮件”选
在我的应用程序中,我想向某人发送邮件。 如果我使用以下代码打开新窗口以接收邮件。 [[UIApplication sharedApplication] openURL: [NSURL URLWithS
我如何在邮件编辑器的 html 正文中添加换行符? 我有一个字符串: NSString *emailBody = [NSString stringWithFormat:@"%%0D%%0AHello,
我想在 MFMailComposerViewController 的撰写表中插入一个 UIImage。 请注意,我不想附加它们,但我想使用 HTML 代码将它们放在一个表格中,这将成为电子邮件正文的一
问题:在我将 MFMailComposerViewController 作为模态视图呈现和取消后,我的状态栏出现在 navigationBar 的顶部。 -(IBAction)openMail:(id
我将我的应用程序转换为 swift 3.0,但 MailComposeController 出现问题。当我调用函数时: `func mailComposeController(_ controller
我正在尝试使用 nodemailer 使用 gmail 帐户发送电子邮件。我查看了很多地方,似乎语法正确,但无论我使用什么示例,我都会不断收到类型错误。这是我正在使用的代码: var node
-(IBAction)addbtnClick:(id)sender { if([MFMailComposeViewController canSendMail]) { MFMa
我是一名优秀的程序员,十分优秀!