Под «странным», я замечаю следующее поведение:Добавление ChildViewController вызывает странное поведение ребенка ViewController
- цвет фона устанавливается
ChildViewController
не появляется - несмотря на добавление основного крана жест распознаватель к
ChildViewController
, нет распознавания водопроводной - добавления
UIButton
к результатам ChildViewController вUIButton
показанных, но нет ответа при касании со стороны UIButton
В моей ParentViewController
, я представляю ChildViewController
очень обобщенно, например:
UIViewController *viewController;
viewController = (ChildViewController *)[self.storyboard instantiateViewControllerWithIdentifier:@"ChildViewController"];
[self addChildViewController:viewController];
viewController.view.frame = self.view.bounds;
viewController.view.translatesAutoresizingMaskIntoConstraints = NO;
viewController.view.center = self.view.center;
[self.view addSubview:viewController.view];
[self.view bringSubviewToFront:viewController.view];
[viewController didMoveToParentViewController:self];
И здесь некоторые основные вещи, которые я делаю в ChildViewController
«s viewDidLoad
:
self.view.backgroundColor = [UIColor yellowColor];
UIButton *tapButton = [UIButton buttonWithType:UIButtonTypeSystem];
[tapButton addTarget:self action:@selector(tappedOnTap) forControlEvents:UIControlEventTouchUpInside];
//button view customization code omitted for brevity
tapButton.userInteractionEnabled = YES;
tapButton.enabled = YES;
[self.view addSubview:tapButton];
UITapGestureRecognizer *tapGesture = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(tappedOnView)];
[self.view addGestureRecognizer:tapGesture];
[self.view setUserInteractionEnabled:YES];
[self.view addGestureRecognizer:tapGesture];
Я гарантировал, что все подключено правильно - однако, нет подтверждения в tappedOnView
и tappedOnTap
, когда я нажимаю на него, как на симуляторе, так и на устройстве.
Я пропустил что-то основное о представлении ChildViewController
?
Редактировать
Для тех, кому интересно, это очень простого приложения на Github.
может быть, попробуйте переместить его от 'viewDidLoad' до' viewDidAppear' и посмотреть, что происходит – random
странно, переместив его в 'viewDidAppear', все исчезнет вместе. – daspianist
попытайтесь удалить эту строку [viewController didMoveToParentViewController: self]; и сделайте это [self addChildViewController: viewController]; после [self.view addSubview: tapButton]; –