UIScrollViewサブビューからView Controllerを表示しようとしています。 私はAppDelegate window.rootViewController presentViewControllerを使用しようとしました:しかし、それは私に "ビューは階層にありません!"エラー。 addSubviewの使用を避けたいのは、MVCが壊れてコントローラの機能が削除されていると思われるからです(ボタンが機能しなくなる)。 私は、presentViewControllerメソッドを使用すると、 "InititalScrollViewSubview"のvisible @interfaceがセレクター "presentViewController:animated:completion:" 。のUIViewController UIScrollViewのはpresentViewController方法なしでは、UIScrollViewサブビューからストーリーボードUIViewControllerを提示します。
私のコードのようなものです:。
-(void)setupTouchIDButtonTapped: (id)sender {
UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"newViewController" bundle:nil];
NewViewController *myNewViewController = [storyboard instantiateViewControllerWithIdentifier:@"myNewVC"];
//私が試した最初のもの:
AppDelegate *delegate = (AppDelegate *)[[UIApplication sharedApplication] delegate];
[delegate.window.rootViewController presentViewController:NewViewController animated:YES completion:nil];
InitialScrollViewSubviewがあり
[self presentViewController:NewViewController animated:YES completion:nil];
}
はそれが道ままに:
// 2番目のものは、私が試した
[self addSubview:NewViewController.view];
//第三の事を試してみました。理想的には、InitialScrollViewSubviewが別のUIViewControllerであるように私はすべてをリファクタリングしたいと思いますが、私は巨大な会社のために働き、アプリはあまりにも大きいです。 アドバイスをいただければ幸いです!
ありがとうございます!
ありがとうございます! 私はそれを試してみました。[self addSubview:NewViewController.vew]; ビューが表示されますが、すべてのボタンが機能しなくなります。なぜなら、これはscrollViewビューのちょうど離れたところにあるので、「コントローラ」機能を失うからです。 –
スクロールビューは、イベントを受信するために登録されたプライマリビューである可能性が高いので、viewcontroller.viewでuserInteractionenabledを有効にしてください。あなたはまた、ここでヒントを試すことができます:http://stackoverflow.com/questions/4629499/how-to-steal-touches-from-uiscrollview – Scriptable
これはおそらく必要な解決策ですhttp://stackoverflow.com/questions/16649639/uibutton-does-not-work-when-it-in-uiscrollview – Scriptable