3 つの異なるテーブル (一度に 1 つ) を表示するビュー コントローラー (と呼びましょうMainViewContoller
) を取得しました。ユーザーはセグメント コントロールをタップして、これらのテーブルを切り替えることができます。
これらの 3 つのテーブルを表示するために、MainViewContoller
他に 3 つのビュー コントローラー (A、B、C) があり、それぞれがUITableView
サブビューとして を持ち、独自のデータを処理します。
aMainViewContoller
がロードされると、コントローラ A、B、および C が開始され、それらの tableView がそのビューに追加されます。
- (void)viewDidLoad {
[super viewDidLoad];
ViewControllerA *vcA = [ViewControllerA alloc] init];
[self.view addSubview:vcA.view];
ViewControllerB *vcB = [ViewControllerB alloc] init];
[self.view addSubview:vcB.view];
ViewControllerC *vcC = [ViewControllerC alloc] init];
[self.view addSubview:vcC.view];
}
たとえば、ユーザーがセグメント コントロールをタップして A を選択すると、MainViewContoller
テーブル B と C が非表示になり、テーブル A が再表示されます。次のようになります。
if (userTapOnA) {
self.viewControllerA.tableView.hidden = NO;
self.viewControllerB.tableView.hidden = YES;
self.viewControllerC.tableView.hidden = YES;
}
問題:
ユーザーがステータスバーをタップすると、現在表示されているテーブルが一番上にスクロールするようにします。
この動作は非常に基本的で、通常のビュー コントローラーを使用すると無料で取得できますが、ご覧のとおり、私のビュー コントローラーは通常ではありません。
他のコントローラーのビューをビューとして使用することでMainViewContoller
、デフォルトの動作が壊れると思います。そのためMainViewContoller
、ステータスバーのタップを処理しません。
誰かがそれを解決する方法を考え出しましたか?