3つの異なるテーブル(1つずつ)にあるビューコントローラ(MainViewContoller
と呼ぶことができます)を取得したので、ユーザーはセグメントコントロールをタップしてこれらのテーブルを切り替えることができます。ステータスバーをタップすると上にスクロール
MainViewContoller
には3つの他のビューコントローラ(A、B、C)があり、それぞれサブビューとしてUITableView
があり、それ自身のデータを扱います。
MainViewContoller
がロードされると、それはコントローラA、BおよびCを開始し、それのビューに彼らのtableViewsを追加します。
- (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;
}
問題:ユーザは、私が欲しいステータスバーをタップし
現在表示されているテーブルが上にスクロールすることを示します。
この動作はかなり基本的なもので、通常のView Controllerを使用しているときは無料で表示されますが、View Controllerが通常のものではないことがわかります。
私はMainViewContoller
ビューとして他のコントローラのビューを使用すると、私はMainViewContoller
がステータスバーのタップを処理しないので、私はデフォルトの動作を壊すと思います。
誰かがそれをどのように解決するか考えましたか?
10x、これは非常に役に立ちました:) – Eyal