Smooch — показать пользовательский интерфейс Smooch внутри контейнера UIViewController.

У меня есть контейнер ViewController, который действует как tabController. Контейнер в основном обрабатывает все переходы и контроллеры представления, которые будут показаны. Мне нужно показать пользовательский интерфейс smooch в контроллере представления контейнера. Кто-нибудь из вас знает, как это сделать? Документация просто показывает, что пользовательский интерфейс Smooch появляется как всплывающее окно или как переход.

Чтобы быть более ясным, белое пространство, которое является UIView, — это то место, где мне нужно, чтобы пользовательский интерфейс Smooch отображался. Любая помощь приветствуется!

EDIT: Вот как это выглядит после реализации кода введите здесь описание изображения


person John D    schedule 15.12.2016    source источник


Ответы (1)


Вы можете использовать метод +newConversationViewController. чтобы получить экземпляр представления разговора Smooch, а затем отобразить его как дочерний элемент контроллера панели вкладок

UITabBarController* tabBar = [[UITabBarController alloc] init];    
UIViewController* convoVC = [Smooch newConversationViewController];

[tabBar addChildViewController:convoVC];

Редактировать

Чтобы добавить Smooch в качестве дочернего элемента обычного UIViewController, вы можете использовать следующий код.

UIViewController* vc = [[UIViewController alloc] init];

UIViewController* convoVC = [Smooch newConversationViewController];
[vc addChildViewController:convoVC];
[vc.view addSubview:convoVC.view];

Однако вам придется управлять представлением контроллера представления самостоятельно, потому что я считаю, что представление не будет иметь кнопки Done, когда оно представлено таким образом. И если ваша нижняя панель не является настоящей панелью вкладок, то ввод чата, скорее всего, появится под ней или поверх нее, поскольку ввод пристыковывается к нижней части экрана.

person michaels    schedule 15.12.2016
comment
Единственная проблема заключается в том, что контейнер является подклассом UIViewController, а не UITabBarController (не спрашивайте меня, почему), поэтому не уверен, что это поможет - person John D; 15.12.2016
comment
Отредактировал мой ответ, чтобы показать, как добавить его в обычный UIViewController. Я не уверен, что он будет отображаться правильно. Можете ли вы объяснить немного больше о вашей иерархии представлений и почему вы используете псевдо UITabBarController ? - person michaels; 15.12.2016
comment
У меня действительно нет причин, по которым я использую псевдо-UITabBarController. Это сделал кто-то другой, и слишком больно его вырывать. В основном Container ViewController имеет NavBar и нижнюю панель вкладок. Любое представление, показанное в середине, является просто инициализированным контроллером представления, а затем на панели отображается представление контроллера представления. Также см. «Редактировать» о том, как это появилось, когда я реализовал - person John D; 16.12.2016
comment
Это то, что я имел в виду, говоря, что если ваша нижняя панель не является настоящей панелью вкладок, то ввод чата, скорее всего, появится под ней или поверх нее. К сожалению, нет никакого способа исправить это. Вам, вероятно, придется либо скрыть нижнюю панель, либо представить контроллер представления Smooch более традиционным способом. - person michaels; 19.12.2016
comment
Да я понял. Спасибо за помощь. Вместо этого я, вероятно, попытаюсь показать интерфейс поцелуев по-другому! - person John D; 19.12.2016