2


これは私の問題です。

  1. 私はタブバーアプリケーションを持っています。
  2. 最初のタブには、テーブルがあります。
  3. テーブルをクリックすると、モーダル ビューが表示されます。
  4. モーダル ビューから最初のビューに戻るには、次を使用します
[self presentModalViewController:nw animated:YES];

問題は、モーダル ビューを開いているときにタブバーをクリックすると、2 番目のビューが開きますが、閉じているように見えてもモーダル ビューがまだ開いているため、最初のビューのテーブルが機能しないことです。

タブバーを覆うフルスクリーンでモーダルビューを開く方法ですか?
または、モーダル ビューが閉じているかどうかを確認するには、別のビューからですか?


編集: 私はこのコードのすべてで試しました:

 nw = [[NewsViewController alloc] initWithNibName:@"NewsViewController" bundle:nil];
 nw.modalInPopover = YES;
 nw.wantsFullScreenLayout = YES;
 nw.hidesBottomBarWhenPushed = YES;
 nw.contentSizeForViewInPopover = CGSizeMake(320, 480);
 nw.modalPresentationStyle = UIModalPresentationFullScreen;
 nw.view.frame = [[UIScreen mainScreen] applicationFrame];
 [nw.view setNeedsLayout];

しかし何もない!!! フルスクリーンにはなりません!!

何かアイデアはありますか?

ありがとう、
アルベルト

4

2 に答える 2

1

提示しているビューが全画面表示の場合、これによりタブ バーが見えなくなります。とはいえ、UIWindow と同じサイズになるように、プログラムでビューのサイズを変更する必要がある場合があります。

あなたは...の線に沿って何かをすることができるはずです...

[nw setFrame:[[UIScreen mainScreen] applicationFrame]];
[nw setNeedsLayout];

...これを達成するために。(申し訳ありませんが、私は現在Windowsボックスを使用しているため、これを確認できません。必要に応じて、誰かが微調整を提供してくれることを願っています。)

次に、元のクラスのデリゲート メソッドを使用して、最初のモーダル ビューを閉じる必要があります。(Apple のiOS 用ビュー コントローラー プログラミング ガイドの「モーダル ビュー コントローラーの破棄」セクションを参照してください。) 元のクラスは、モーダル ビューを破棄します。

于 2010-12-20T20:11:32.190 に答える
0

お知らせで解決!

タブが変更されると、通知を送信してモーダル コントローラーを閉じます。

- (BOOL)tabBarController:(UITabBarController *)tbController shouldSelectViewController:(UIViewController *)viewController { 
    [[NSNotificationCenter defaultCenter] postNotificationName:@"DataComplete" object:nil];
    return YES;
}

私の見解では、クラスは通知を受け取り、コントローラーを却下します!

- (void)downloadDataComplete:(NSNotification *)notif {
    NSLog(@"Received Notification");

    [self dismissModalViewControllerAnimated:YES];
}

タブを変更しながらモーダル ビューを再度開くことができるようになりました。
これは回避策ですが、機能します。

アルベルト。

于 2011-01-04T09:56:55.197 に答える