使用 MFMessageComposeViewController 时的奇怪行为

Posted

技术标签:

【中文标题】使用 MFMessageComposeViewController 时的奇怪行为【英文标题】:Odd Behavior When Using MFMessageComposeViewController 【发布时间】:2014-04-14 13:08:18 【问题描述】:

我遇到的问题是 MFMessageComposeViewController 以及 UIActivityViewController 和 Message 选项。

对话框显示正确,但是当我选择收件人时,整个收件人字段会在导航栏下向上滑动。您实际上可以在其下方看到呈现视图控制器。此外,当键入地址时出现自动完成列表时,该列表实际上从屏幕的一半开始,通常在键盘下方。

我创建了一个简单的示例应用程序,它没有问题。仅适用于我的应用程序。

我唯一能想到的是这些对话框是从一个已经呈现出来的视图控制器中呈现出来的,否则我不知道可能是什么问题。

【问题讨论】:

【参考方案1】:

我遇到了同样的问题。在我的情况下,它是由在 UINavigationBar 上使用外观选择器引起的,看起来你可能也在这样做。我通过将这些外观选择器的范围缩小到 UINavigationController 子类来解决它。

    [[UINavigationBar appearanceWhenContainedIn:[MYNavigationController class], nil] setBackgroundImage:... forBarMetrics:...];

而不是

    [[UINavigationBar appearance] setBackgroundImage:... forBarMetrics:...];

【讨论】:

【参考方案2】:

我也遇到了同样的问题。

在我的 AppDelegate 中,我将 BackgroundImage 设置为我的自定义 NavBar。一旦我删除它,行为是正确的。确实很奇怪。

【讨论】:

以上是关于使用 MFMessageComposeViewController 时的奇怪行为的主要内容,如果未能解决你的问题,请参考以下文章

在使用加载数据流步骤的猪中,使用(使用 PigStorage)和不使用它有啥区别?

今目标使用教程 今目标任务使用篇

Qt静态编译时使用OpenSSL有三种方式(不使用,动态使用,静态使用,默认是动态使用)

MySQL db 在按日期排序时使用“使用位置;使用临时;使用文件排序”

使用“使用严格”作为“使用强”的备份

Kettle java脚本组件的使用说明(简单使用升级使用)