Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/97.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 如何在UITabBarController中的视图控制器之间传递数据?_Ios_Swift_Uitabbarcontroller_Uitabbar - Fatal编程技术网

Ios 如何在UITabBarController中的视图控制器之间传递数据?

Ios 如何在UITabBarController中的视图控制器之间传递数据?,ios,swift,uitabbarcontroller,uitabbar,Ios,Swift,Uitabbarcontroller,Uitabbar,我有两个问题。 我想传递数据。我有两个视图控制器。 控制器A有数据,我想把它从A传给B控制器 第一个-选项卡栏控制器具有一个关系序列。我能用这个吗?例如:执行segue或prepare 第二,我想在UITabBarController 我不能这样做。我搜索了这个我找不到这个 我不知道搜索词是否错了。你能告诉我怎么做或者怎么搜索吗 不,一段感情不是一段真正的爱情。仅通过切换选项卡不会触发任何序列 您只需将数据放在各种视图控制器可以找到的位置。如果要通知其他视图控制器数据已更改,请使用通知或利用选

我有两个问题。 我想传递数据。我有两个
视图控制器
。 控制器A有数据,我想把它从A传给B控制器

第一个-选项卡栏控制器具有一个关系序列。我能用这个吗?例如:执行segue或prepare

第二,我想在
UITabBarController
我不能这样做。我搜索了这个我找不到这个

我不知道搜索词是否错了。你能告诉我怎么做或者怎么搜索吗

  • 不,一段感情不是一段真正的爱情。仅通过切换选项卡不会触发任何序列

  • 您只需将数据放在各种视图控制器可以找到的位置。如果要通知其他视图控制器数据已更改,请使用通知或利用选项卡栏控制器委托知道用户何时切换选项卡栏项目这一事实

  • 不,一段感情不是一段真正的爱情。仅通过切换选项卡不会触发任何序列

  • 您只需将数据放在各种视图控制器可以找到的位置。如果要通知其他视图控制器数据已更改,请使用通知或利用选项卡栏控制器委托知道用户何时切换选项卡栏项目这一事实


  • 不可以,如果两个ViewController连接到TabbArController,则不能在它们之间直接传递数据

    如果需要,您可以通过NotificationCenter进行管理(因此,当发生新的更改并发布通知时,它将自动刷新数据)

    //当您收到回复时,发布更改

    NotificationCenter.default.post(name: Constants.Notification.refreshAttendanceForSelectedDate, object: nil)
    
    或 通过创建单例对象,可以通过DataStorgae在相应模型类型(LocalCache)的变量中传递更新的数据。此变量将驻留在内存中,直到应用程序驻留在内存中。强制终止应用程序或从内存中清除应用程序后,此变量将自动删除

    注意:如果需要,请不要忘记设置值nil。(例如注销操作时)

    成套使用

    DataStorage.instance.selectedStaffId = model.id
    
    获取值

    if let id = DataStorage.instance.selectedStaffId {
    /// Perform respective task ....
    }
    

    不可以,如果两个ViewController连接到TabbArController,则不能在它们之间直接传递数据

    如果需要,您可以通过NotificationCenter进行管理(因此,当发生新的更改并发布通知时,它将自动刷新数据)

    //当您收到回复时,发布更改

    NotificationCenter.default.post(name: Constants.Notification.refreshAttendanceForSelectedDate, object: nil)
    
    或 通过创建单例对象,可以通过DataStorgae在相应模型类型(LocalCache)的变量中传递更新的数据。此变量将驻留在内存中,直到应用程序驻留在内存中。强制终止应用程序或从内存中清除应用程序后,此变量将自动删除

    注意:如果需要,请不要忘记设置值nil。(例如注销操作时)

    成套使用

    DataStorage.instance.selectedStaffId = model.id
    
    获取值

    if let id = DataStorage.instance.selectedStaffId {
    /// Perform respective task ....
    }
    

    通过TabBarController将A的数据发送给B。通过TabBarController将A的数据发送给B。