【发布时间】:2011-11-28 17:00:17
【问题描述】:
我想从一个表格视图中展示一个 MFMailComposeViewController。我不想使用presentModalViewController:animated: 方法,而是push 视图控制器,因此它与此表视图中的其他动画一致。
因为 MFMailComposeViewController 是 UINavigationController 并且不支持推送导航控制器,所以我使用了:
[[self navigationController] pushViewController:[mailComposer topViewController] animated:YES];
这可行,但是当我点击取消按钮时,它会发出警告:
呈现由其超级视图剪辑的操作表。某些控件可能无法响应触摸。在 iPhone 上尝试 -[UIActionSheet showFromTabBar:] 或 -[UIActionSheet showFromToolbar:] 而不是 -[UIActionSheet showInView:]。
UIActionSheet 底部的取消按钮不响应触摸。有谁知道是否可以推送 MFMailComposeViewController?
【问题讨论】:
-
您已经回答了您的问题 - MFMailComposeViewController 是 UINavigationController,不支持推送导航控制器
-
但是可以推送 MFMailComposeViewController 的 UIViewController。还是不支持?
-
您的代码推送 UIViewController(topViewController 返回它)。这是正常行为。
-
是的,我知道,但缺点是当您使用 MailComposer 的取消按钮时 UIActionSheet 警告。所以它似乎不受支持,或者我错过了一个步骤(比如告诉这个视图控制器使用 [self navigationController] 作为它的导航控制器)。
-
我认为从包含 MailComposer 的导航调用的 UIActionSheet 和此操作表无法找到(或执行)某些操作,因为您只有导航层次结构的一部分(缺少导航栏或工具栏)。
标签: objective-c ios uiactionsheet mfmailcomposer