【发布时间】:2012-06-23 05:11:45
【问题描述】:
我有一个非常奇怪的问题。我正在使用当前的模态视图控制器将我的 MFMailComposer ViewController 显示在放置在导航栏中的 ViewController 的顶部。
[self presentModalViewController:emailviewController animated:YES];
要隐藏,我用...
-(void) mailComposeController:(MFMailComposeViewController *)controller didFinishWithResult:(MFMailComposeResult)result error:(NSError *)error
{
[self dismissModalViewControllerAnimated:YES];
}
一切正常,但是当我关闭 MailComposer 时,原始视图控制器隐藏在状态栏后面。
我尝试使用 setFrame 方法将视图偏移量修改为 10,但它不起作用。 (这在模态视图控制器呈现和关闭之前和之后很累)
我尝试过暂时隐藏状态栏,但没有成功。
我已经尝试过 self.navigationcontroller presentmodalviewcontrolle 但这也没有用...
任何想法或建议将不胜感激
edited : 大多数人给我一个建议来手动修改偏移量。 好吧,那是行不通的。因为如果我在原始 viewcontroller 方法的 viewDidLoad/viewWillapper 中这样做,那么它会在当前模态视图控制器之前移动我的视图,而在我加载模态视图控制器之后它会变得正常。
- (void) viewDidAppear: (BOOL) 动画 { CGRect 框架 = self.navigationController.view.frame; frame.origin.y = 20; self.navigationController.view.frame = 框架; }
【问题讨论】:
-
您的原始视图控制器是否将状态栏设置为隐藏或否?
-
nope .. 我还没碰过状态栏
-
所以在模态视图控制器和原始视图控制器中状态栏没有变化?
-
没有。状态栏保持在同一个位置,它是模态视图控制器更改后的视图控制器
-
好的。我的问题已解决,但我不知道如何解决。我的导航控制器最初由 self.navigationController setViewControllers: Array of View controller 初始化。在其中一个中,我通过发送 shouldAutorotateTo.... 来禁用自动旋转以返回 NO 而在其他中则为 YES 。我改变了那个以遵守其他人并且它起作用了。我不知道发生了什么,但是。我将模拟这个并为 Apple 提交一个错误,除非其他人可以帮助我弄清楚引擎盖下发生了什么
标签: iphone ios xcode ipad mfmailcomposeviewcontroller