0

プロジェクトを iOS7 にアップグレードした後、ステータス バーの下にビューが表示されました。

float systemVersion=[[[UIDevice currentDevice] systemVersion] floatValue];
if(systemVersion>=7.0f)
{
    CGRect tmpFrame = self.navigationController.view.frame;
    tmpFrame.origin.y = 20;
    self.navigationController.view.frame = tmpFrame;
}

しかし、私のSettingsViewControllerで、モーダルビューを提示してsmsコンポーザーを表示すると、作成が完了した後、またはステータスバーの下でそのビューが再びキャンセルされました。しかし、DashBoardViewController ビューに戻ると、通常に戻ります。どうすればいいのかわからない。問題を説明できれば幸いです。私のコードとスクリーンショットは以下のとおりです。

->スクリーンショット: ここに画像の説明を入力

SettingViewController.m (SMS 作成メソッドと終了作成メソッドを表示)

- (IBAction)act_shareSMS:(id)sender {
    
    MFMessageComposeViewController *controller = [[MFMessageComposeViewController alloc] init];
    NSString* message = @"adasdasd";
    controller.body =message;
    controller.messageComposeDelegate = self;
    
    if([NavigationManager sharedManager].contentNavigation)
        [[NavigationManager sharedManager].contentNavigation presentModalViewController:controller animated:YES];
}

- (void)messageComposeViewController:(MFMessageComposeViewController *)controller didFinishWithResult:(MessageComposeResult)result {

    [[NavigationManager sharedManager].contentNavigation dismissModalViewControllerAnimated:YES];

    if (result == MessageComposeResultCancelled) {
        NSLog(@"Message cancelled");
    } 
    else if (result == MessageComposeResultSent) {
       NSLog(@"Message sent");
    }
}
4

2 に答える 2

0

この変更は iOS 7 に対する意図的な変更です。これは、対処に役立つはずですhttp://www.doubleencore.com/2013/09/developers-guide-to-the-ios-7-status-bar/

この問題を自動的に修正するために、viewcontrollers サブビューで iOS 6/7 デルタを使用してみてください。

ここに画像の説明を入力

デルタ Y を 20 に設定すると、自動的に下に移動します。

于 2014-01-11T15:53:59.823 に答える