2016-09-01 4 views
-1

У меня есть приложение на основе вкладок с 2 вкладками (HomeViewController и SettingsViewController).Изменение контроллера отображения на контроллер панели вкладок

В окне «НастройкиПросмотр» у меня есть кнопка, которая приведет пользователя к третьему виду (ChangeSomeSettingController).

На этой третьей точке зрения, у меня есть TableView с этой функцией

func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) { 
    ... 
    let settingsViewController = self.storyboard!.instantiateViewControllerWithIdentifier("SettingsViewController") as! SettingsViewController 
    self.presentViewController(settingsViewController, animated:true, completion:nil) 
} 

Это переместит пользователя обратно в SettingsViewController. Однако я не могу заставить панель вкладок отображаться в нижней части экрана, как при первой загрузке приложения.

Как я могу вернуться в панель управления SettingsViewController и сохранить вкладки в нижней части экрана?

ответ

2

Прежде всего, presentViewController:animated:completion: представит SettingsViewController modally. Вам нужен поток UINavigationController.

1) Добавить создать UITabBarController enter image description here

2) Выберите пункт (UIViewController), что будет есть UINavigationControler поток.

3) Удалить это

4) Добавить UITableViewController

5) Добавить новый UITableViewController в UITabBarController enter image description here

6) Выберите UITableViewController и встраивать в (Редактор> Вставить в> навигации Controller) на контроллер навигации. enter image description here

7) Добавить UIViewController и добавить SEGUE (Показать) между UITableViewController и UIViewController

8) Окончательный результат Результат должен быть что-то вроде этого: enter image description here

0

Эта линия:

self.presentViewController(settingsViewController, animated:true, completion:nil) 

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

Вам нужно нажать VC, когда вы выберете вкладки, поэтому вам не нужно будет их повторять, если вы хотите вернуться.

Если вам не нужен контроллер навигации, вы должны представить контроллер панели вкладок вместо настроек vc.

1

В ChangeSomeSettingController, если вы pushViewController от SettingViewController, вы должны вызвать

navigationController?.popViewControllerAnimated(true) 

или если вы хотите, чтобы вернуться к SettingViewController

//back to root view controller from navigation 
navigationController?.popToRootViewControllerAnimated(true) 
// you should call to tabbar view controller 
UITabbarViewController *tabbarVC = (UITabbarViewController *)[UIApplication sharedApplication] delegate].window.rootViewController; 
[tabBarController setSelectedIndex:1]; // 1 is index of SettingViewController 

Это вот пример для меня, с вашей проблемой вы можете изменить в адаптируйте свое требование. надеюсь эта помощь для вас.

Смежные вопросы