#ios #swift #xcode
#iOS #swift #xcode
Вопрос:
У меня есть TapBarViewController
с тремя отводами в моем проекте.
Теперь я пытаюсь поставить обычный FirstViewController
перед TapBar ViewController
при запуске приложения.
FirstViewController
Должно быть три кнопки для одного из отдельных нажатий TapBarViewController
.
Как я могу показать отдельные нажатия TapBarViewController
, нажав одну из трех кнопок?
Комментарии:
1. Ваш вопрос неясен. Пожалуйста, предоставьте несколько скриншотов.
2. Я добавил картинку для наглядности.
Ответ №1:
Это точный ответ, который вы ищете.
Шаги:
- Добавьте
UIViewcontroller
и внедрите с помощьюUINavigationViewController
(Редактор -> Встраивание -> NavigationController). - Добавьте три кнопки 1 кнопка (перейдите к TabViewController).
- Перетащите
UITabBarController
на раскадровку, которая поставляется с одним ViewController по умолчанию, и поместите UILabel с именем ‘ButtonOneClicked’. - Создайте еще два ViewControllers с именами ‘ButtonTwoClicked’ и ‘ButtonThreeClicked’.
- Соедините ‘ButtonOne’ с
FirstViewController
и установите segue какShow
и повторите то же самое для остальных двух. - Нажмите на каждый переход и укажите уникальное имя идентификатора.
- Затем подключите
UITabBarController
к каждому UIViewController и выберитеviewcontrollers
- Создайте ButtonAction для
Tab
кнопки. -
Скопируйте и вставьте приведенный ниже код в это действие.
@IBAction func tabClicked(_ sender: Any) { let appDelegate = UIApplication.shared.delegate as! AppDelegate appDelegate.window = UIWindow(frame: UIScreen.main.bounds) let storyboard = UIStoryboard(name: "Main", bundle: nil) let initialViewController = storyboard.instantiateViewController(withIdentifier: "Tab") as! UITabBarController appDelegate.window?.rootViewController = initialViewController appDelegate.window?.makeKeyAndVisible()}
Надеюсь, это поможет вам!!
Комментарии:
1. На самом деле это не так, как я хочу, чтобы это было. Я просто хочу, чтобы начальный FirstViewController с этими тремя кнопками вызывал один из трех TapBarViewControllers, и я не хочу, чтобы FirstViewController отображался снова, за исключением случаев перезапуска приложения.
2. Используйте код из действия кнопки ‘tabClicked’ и отправьте некоторый уникальный тег в UITabBarController, чтобы открыть соответствующий ViewController.
3. self.TabBarController.SelectedIndex = 1; // 1 или 2 или 3. Вызовите эту строку в viewWillAppear() TabBarViewController.