ここで非常に奇妙な問題があります。現在のモーダル ビュー コントローラーを使用して、ナビゲーション バーに配置されている ViewController の上に MFMailComposer 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 を試しましたが、うまくいきませんでした...
どんなアイデアや提案も大歓迎です
編集済み:ほとんどの人は、オフセットを手動で変更するよう提案してくれます。それはうまくいきません。元のviewcontrollerメソッドのviewDidLoad/viewWillapperでそれを行うと、現在のモーダルビューコントローラーの前にビューがシフトしますが、モーダルビューコントローラーをロードした後は正常になります。
- (void) viewDidAppear: (BOOL) アニメーション { CGRect フレーム = self.navigationController.view.frame; frame.origin.y = 20; self.navigationController.view.frame = フレーム; }