MFMailComposeViewController来自弹出窗口

时间:2011-04-06 17:09:04

标签: ipad uipopovercontroller

我有一个UIViewController在我的iPad应用程序中显示为弹出窗口。在其中,我有一个按钮,触发MFMailComposeViewController发送电子邮件。但是,它目前似乎没有做任何事情,即使我使该视图控制器不是一个弹出窗口,它工作正常。我的猜测是因为我试图从另一个触发一个模态屏幕,所以我的问题是:有办法做到这一点吗?什么是可接受的互动?

如果我首先尝试解除我的模态弹出窗口然后显示MFMailComposeViewController,它会解除弹出窗口并且没有任何反应。我试图推动MFMailComposeViewController的顶视图控制器,因为它是一个UINavigationController,到我的弹出窗口的导航控制器上,我把导航栏更新为正确的东西,但没有控件。当我点击取消时它也崩溃了:

-[NSPathStore2 _closeButtonClicked:]: unrecognized selector sent to instance 0xc602f70
(gdb) bt
0  0x020fa2f9 in objc_exception_throw ()
1  0x01fa80bb in -[NSObject(NSObject) doesNotRecognizeSelector:] ()
2  0x01f17966 in ___forwarding___ ()
3  0x01f17522 in __forwarding_prep_0___ ()
4  0x008994fd in -[UIApplication sendAction:to:from:forEvent:] ()
5  0x00aabcc3 in -[UIBarButtonItem(UIInternal) _sendAction:withEvent:] ()
6  0x008994fd in -[UIApplication sendAction:to:from:forEvent:] ()
7  0x00929799 in -[UIControl sendAction:to:forEvent:] ()
8  0x0092bc2b in -[UIControl(Internal) _sendActionsForEvents:withEvent:] ()
9  0x0092a7d8 in -[UIControl touchesEnded:withEvent:] ()
10 0x008bdded in -[UIWindow _sendTouchesForEvent:] ()
11 0x0089ec37 in -[UIApplication sendEvent:] ()
12 0x008a3f2e in _UIApplicationHandleEvent ()
13 0x02597992 in PurpleEventCallback ()
14 0x01f87944 in __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE1_PERFORM_FUNCTION__ ()
15 0x01ee7cf7 in __CFRunLoopDoSource1 ()
16 0x01ee4f83 in __CFRunLoopRun ()
17 0x01ee4840 in CFRunLoopRunSpecific ()
18 0x01ee4761 in CFRunLoopRunInMode ()
19 0x025961c4 in GSEventRunModal ()
20 0x02596289 in GSEventRun ()
21 0x008a7c93 in UIApplicationMain ()
22 0x00002c9e in main (argc=1, argv=0xbffff000) at /Users/abushnaq/AccurevWorkspaces/Future_Core_Integration_iphone/iPhoneClient/main.m:15

并且这个堆栈跟踪都不在我写的代码中。

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

关键是要忽略之前的模态控制没有动画。如果我动画解雇第一个,第二个从未出现过。我猜测动画的异步性质是背后的原因。