Tabbar controller и передача данных между view

swift

#1

Здравствуйте, подскажите, все перерыл, но везде в примерах просто передача, без задействования tabbar’a, а как быть с ним?
Я передаю данные между двумя viewcontroller, все передается - но при передаче данных и появлении 2-го окна, исчезает tabbar. Данные передаются через

 override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
        let secondVC = segue.destination as! SecondViewController;
        secondVC.textOb = "text";
 }

хоть в какую сторону копать?


#2

Вы хотите что бы tabBar не пропадал при открытии 2-го окна?


#3

Да, конечно, чтобы он оставался


#4

Ищите в IB у второго окна галочку “Hide bottom bar on push” - она должна быть снята


#5

Она и была снята, перепроверил - да, снята на всех экранах


#6

У сигвея тип должен быть установлен в Push или Push Details.
Так же в коде не должен скрываться tabBar програмно.


#7

Программно не скрывается, тип у сигвея Push (вот этот push имеется в виду?)
21


#8

В общем сделал напрямую обратившись к view

(tabBarController?.viewControllers?[0] as? SecondViewController)?.myField = String(myVal);
    tabBarController?.selectedIndex=0;

понимаю что скорее всего неправильно, но других решений пока нет, бьюсь уже 3-й день. Если кто подскажет более правильное решение - буду благодарен


#9

Я не понял, при чем тут свойство у tabBar Controller’a?
Вам от куда и куда нужно передать данные?


#10

Есть tab bar controller, на нем висит 2 view. Нужно передать данные из одного в другой, чтобы не пропадала снизу панель навигации.
И вылезла еще 1 проблема, по видимому перекликающаяся с предыдущей - навесил свайпы на view, все отрабатывает - но опять таки при переходе на другой экран пропадает панель навигации :frowning_face:


#11

Если у tabBara 2 дочерних ViewController’a, то при переключении между ними ничего делать не нужно, а данные можно передавать через NotificationCenter.
Если вам нужно из одного ViewController’a у tabBara открыть дочерний ViewController, то тут нужен сигвей и метод prepare. А исчезновение tabBar’a в этом случае - это логичное поведение. Если же хотите что бы tabBar не пропадал, в методе viewWillAppear добавьте tabBarController?.tabBar.isHidden = false


#12

Добавлял я в viewWillAppear tabBarController?.tabBar.isHidden = false, все равно нет панели нижней. И почему на свайпах тоже панель нижняя пропадает?


#13

Можете показать стрибоард со своим TabBar’om?


#14


Передача объекта из БД Realm на другой контроллер UITabBar
#15

Я не вижу тут ниодного сигвея от ваших контроллеров.
Еще желательно добавить перед каждым контроллером NavigationController.


#16

Да, их сейчас нет. Был от калькулятора к заказу


#17

Это так не делается. Если вам нужно передавать данные между ViewController’ами TabBar’a, можно использовать NotificationCenter, либо через tabBar.viewControllers… тут вытаскиваете reference на нужный VC и уже через него передаете данные.


#18

Понял, почитаю, спасибо