Как передать данные между двумя контроллерами представления, которые разделены UITabBarController? - PullRequest
0 голосов
/ 26 декабря 2018

Я хочу передать User Данные (объект) от LoginVC до HomeVC, но между этими двумя контроллерами представления они разделяются на UITabBarController и NavigationController, как показано на рисунке ниже:

Я хочу передать User Данные с этого логина ВК.от этого loginVC, он будет переходить к main.storyboard, как показано на рисунке ниже

enter image description here

здесь main.storyboard, который содержит контроллер панели вкладок, впервая вкладка (индекс = 0) - это место, где расположен HomeVC, я поместил homeVC в Home.storyboard enter image description here

, а здесь - Home.storyboard, есть Навигацияконтроллер, прежде чем я наконец достиг HomeVC.enter image description here

так как передать данные из LoginVC в HomeVC?кажется, что я должен передать данные из: LoginVC -> TabBarController -> NavigationController -> HomeVC

что мне делать?

Данные пользователя похожи на код ниже:

struct User {
    var username : String
    var firstName: String
    var lastName: String
    var userCode : String
    var address: String
    var phoneNumber: String
    var dateOfBirth: String
    var outlet : Outlet // custom object

    init (dictionary: [String:Any]) {
        username = dictionary["user_name"] as? String ?? ""
        firstName = dictionary["customers_firstname"] as? String ?? ""
        lastName = dictionary["customers_lastname"] as? String ?? ""
        userCode = dictionary["kode_customer"] as? String ?? ""
        address = dictionary["alamat_user"] as? String ?? ""
        phoneNumber = dictionary["customers_telephone"] as? String ?? ""
        dateOfBirth = dictionary["customers_dob"] as? String ?? ""
        outlet = Outlet(dictionary: dictionary)
    }



}

Ответы [ 3 ]

0 голосов
/ 26 декабря 2018

Пользовательские данные импортируются, вы должны сохранить пользовательские данные в локальном файле, а затем вы можете получать пользовательские данные везде.

0 голосов
/ 26 декабря 2018

Класс UITabBarController содержит массив ViewControllers.

Вы можете получить доступ к первому ViewContoller, используя обычное индексирование внутри любого контроллера представления внутри UITabBarController:

self.tabBarController?.viewControllers[0]
0 голосов
/ 26 декабря 2018

UITabBarController поддерживает массив контроллера представления в порядке индекса вкладки.

https://developer.apple.com/documentation/uikit/uitabbarcontroller/1621185-viewcontrollers

И снова UINavigationController также поддерживает стек контроллера.

вам просто нужно получить объект вашего контроллера представления из массива (путем его приведения) и передать данные.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...