Показывать отводы в TapBarViewController

#ios #swift #xcode

#iOS #swift #xcode

Вопрос:

У меня есть TapBarViewController с тремя отводами в моем проекте.

Теперь я пытаюсь поставить обычный FirstViewController перед TapBar ViewController при запуске приложения.

FirstViewController Должно быть три кнопки для одного из отдельных нажатий TapBarViewController .

Как я могу показать отдельные нажатия TapBarViewController , нажав одну из трех кнопок?

Скриншот

Комментарии:

1. Ваш вопрос неясен. Пожалуйста, предоставьте несколько скриншотов.

2. Я добавил картинку для наглядности.

Ответ №1:

Это точный ответ, который вы ищете.

Шаги:

  1. Добавьте UIViewcontroller и внедрите с помощью UINavigationViewController (Редактор -> Встраивание -> NavigationController).
  2. Добавьте три кнопки 1 кнопка (перейдите к TabViewController).
  3. Перетащите UITabBarController на раскадровку, которая поставляется с одним ViewController по умолчанию, и поместите UILabel с именем ‘ButtonOneClicked’.
  4. Создайте еще два ViewControllers с именами ‘ButtonTwoClicked’ и ‘ButtonThreeClicked’.
  5. Соедините ‘ButtonOne’ с FirstViewController и установите segue как Show и повторите то же самое для остальных двух.
  6. Нажмите на каждый переход и укажите уникальное имя идентификатора.
  7. Затем подключите UITabBarController к каждому UIViewController и выберите viewcontrollers
  8. Создайте ButtonAction для Tab кнопки.
  9. Скопируйте и вставьте приведенный ниже код в это действие.

     @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.