7

最新の更新: 以下とまったく同じ方法で構築された新しいプロジェクトを作成しました。ただし、このテストプロジェクトは実際には同じように見えますが、実際には問題なく動作します...私が気づいたことの1つは、壊れたバージョンの親View Controllerが-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event、子View Controllerのビューをクリックすると.動作中のバージョンでは、子ビュー コントローラーがイベントを受け取る必要があります...親ビューが子ビューまたは何かをブロックしているようです..?

進捗状況の更新: 少しいじってみると、フレームを子ビュー コントローラーに直接割り当てたときに問題なく動作することがわかりました。ただし、自動レイアウトを使用してプロジェクトを作成する必要があるため、それが私が行ったことです。何らかの理由で、自動レイアウトにより、子ビュー コントローラーのビューが応答しなくなります...

現時点では、子ビューコントローラーが1つしかないビューコントローラーがあります。childviewcontroller のビューは問題なく表示されますが、childViewController とはまったく対話できません。childViewController にはいくつかの UIButtons がありますが、クリックに応答しません。

親と子のビューコントローラーの両方でこれをテストしてみました。

(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{
    NSLog(@"Touched!");
}

子View Controllerのビューのフレームをクリックすると、このメソッドは親View Controllerでは応答しますが、子View Controllerでは応答しません。

子ビュー コントローラーは、アプリ デリゲートで直接作成してルート ビュー コントローラーとして設定した場合にも正しく動作します。

親View Controllerで使用しているコード:

(void) viewDidLoad
{
    [super viewDidLoad];
    self.detailPageVC = [[GoalDetailsPageViewController alloc] init];
    [self.view addSubview:self.detailPageVC.view];
    [self addChildViewController:self.detailPageVC];
    [self.detailPageVC didMoveToParentViewController:self];
}

新人を助けてくれてありがとう!:)

4

3 に答える 3

1

さて、私は次のことしか提案できません。

  • userInteractionEnabledボタンのプロパティと子 ViewController のビューが に設定されていることを確認してくださいYES
  • ビューが「非表示」になっておらず、アルファが 0.0 になっていないことを再確認してください。
  • exclusiveTouch親の ViewController のビューがに設定されていないことを確認しますYES

お役に立てれば!

于 2013-07-08T19:57:19.927 に答える
-1

私の解決策:

- (void) displayContentController: (UIViewController*) content{
[content.view setFrame:recorderView.bounds];
UINavigationController *childNavController = [[UINavigationController alloc] initWithRootViewController:content];
childNavController.toolbarHidden = NO;
childNavController.view.frame = content.view.frame;
[self addChildViewController:childNavController];
[recorderView addSubview:childNavController.view];
[childNavController didMoveToParentViewController:self];
}
于 2016-07-09T10:17:41.720 に答える