2

Main ViewController と Navigation ViewController を使用します。ユーザーがナビゲーションを使用する場合、ナビゲーション ViewController は画面の 80% を占め、メイン ViewController は残りの 20% を占めます。この場合、ユーザーは Main ViewController と対話するべきではありません。

Main ViewController とのやり取りを一時的に無効にするにはどうすればよいですか?


編集:これは、さらなる問題を宣言します:

これは部分的にうまく機能します。ナビゲーションが開いている場合、ユーザーは MainViewController と対話できませんが、これにより他に 2 つの問題が発生します。

問題: ユーザーは、MainView の場所 (アプリの右側の 20%) で NavigationView を操作できます。ユーザーは、下位​​の NavigationController (Navigation) に値する対話を行うべきではありません。

問題: ユーザーは、MainView の 20% をドラッグして、NavigationView を閉じ、MainView を完全に開くことができません。

MainView の下で階層化されているすべてのオブジェクトとの相互作用を無効にする理由になると思います。別のViewControllerの関数でこれを行うと、これは可能ですか? 難しさは、さまざまな種類の「MainViews」に対してこれを行う必要があることです。場合によっては、TableViewController のみが含まれる場合もあれば、UIButton のクラスターが含まれる場合もあります。

4

2 に答える 2

6

mainViewController.view.userInteractionEnabled = NOあなたのために働くはずです。

これにより、ビューがタッチに反応しなくなります。

于 2013-04-11T12:03:34.780 に答える
0

今、私の解決策をお見せしたいと思います。誰かが同様の問題を抱えているかもしれません。(これを編集ではなく新しい投稿に表示することで問題ないことを願っています。そうしないと、解決済みとして確認できません)

MainViewContent をユーザーが操作してはならない場合:

CGRect viewSize = self.centerView.frame;
UIView *disableInteractionView = [[UIView alloc] initWithFrame:CGRectMake(viewSize.origin.x, (viewSize.origin.y + 44.0), viewSize.size.width, (viewSize.size.height - 44.0))];
disableInteractionView.backgroundColor = [UIColor clearColor];
disableInteractionView.tag = 1234;
[self.centerView addSubview:disableInteractionView];

MainViewContent が自由に操作できる場合:

[[self.centerView viewWithTag:1234] removeFromSuperview];
于 2013-04-11T15:06:22.360 に答える