У меня есть проект Swift, и я присоединяю Obj-C ViewController к его представлению следующим образом:
+ (void)attachGameController:(UIViewController *)view
{
GameViewController *c = [GameViewController numberTile:4 backgroundColor:[UIColor whiteColor] buttonControls:NO swipeControls:YES];
[view addChildViewController:c];
[view.view addSubview:c.view];
[c didMoveToParentViewController:view];
// configure the view
c.view.translatesAutoresizingMaskIntoConstraints = NO;
[c.view.topAnchor constraintEqualToAnchor:view.view.topAnchor].active = YES;
[c.view.leftAnchor constraintEqualToAnchor:view.view.leftAnchor].active = YES;
[c.view.widthAnchor constraintEqualToAnchor:view.view.widthAnchor].active = YES;
[c.view.heightAnchor constraintEqualToAnchor:view.view.heightAnchor].active = YES;
}
// from Swift ViewController I'm calling the above method as
attachGameController(self)
Это прекрасно работает, включая поведение жестов между представлениями Swift и Obj-C.!
Проблема начинается, когда я хочу показать поповер Swift ViewController в какой-то момент на изображении выше.Я попробовал следующее, но все не удалось открыть ViewController и ни одной ошибки:
let help = HelpUserController()
self.presentingViewController?.present(help, animated: false, completion: nil)
// or
self.present(help, animated: false, completion: nil)
// or
help.view.frame = self.view.frame
self.addChildViewController(help)
self.view.addSubview(help.view)
help.didMove(toParentViewController: self)
Спасибо!