Ios 如何使用swift在情节提要模式下重用UITabBarController中的视图控制器

Ios 如何使用swift在情节提要模式下重用UITabBarController中的视图控制器,ios,swift,swift2,uitabbarcontroller,Ios,Swift,Swift2,Uitabbarcontroller,我使用的是一个带有3个子视图的UITabBarController,它们都具有相同的结构,只是应用于数据的不同数据或过滤器。到目前为止,我只创建了3个子视图并将它们连接起来,但我在重复我自己,我知道这不可能是正确的做法 我的问题是如何创建一个子视图及其所有功能和视图,然后在应用正确过滤器的情况下重用它。e、 g 单击“所有数据”选项卡,加载具有var filter='all'和var order_by='created_date'的视图 单击“已完成”选项卡,加载具有var filter='co

我使用的是一个带有3个子视图的UITabBarController,它们都具有相同的结构,只是应用于数据的不同数据或过滤器。到目前为止,我只创建了3个子视图并将它们连接起来,但我在重复我自己,我知道这不可能是正确的做法

我的问题是如何创建一个子视图及其所有功能和视图,然后在应用正确过滤器的情况下重用它。e、 g

单击“所有数据”选项卡,加载具有var filter='all'和var order_by='created_date'的视图

单击“已完成”选项卡,加载具有var filter='completed'和var order_by='completed_date'的视图


我在想,当我准备这段对话时,我可以做些什么?

尽管你的原始帖子没有太多的内容,但我认为这可能会奏效

您可以在主子视图中设置一个全局变量,您希望根据我的理解在内容中对其进行自定义

var customizationObject = CustomFilters()
对于CustomFilters,请执行以下操作:

class CustomFilters {
 var filter1: String?
 var filter2: String?
//and so on
}
在prepareForSegue中,将对象传递给目标视图控制器以设置过滤器

override func prepareForSegue(segue: UIStoryboardSegue!, sender: AnyObject!) {
    if (segue.identifier == "Load View") {
        // pass data to next view
    }
}

在新的单子视图中,检查在视图中设置的过滤器将显示或查看加载(取决于您的情况),然后继续执行您想要执行的操作

我也遇到了同样的问题,我发现ctrl从“选项卡视图控制器”拖动多次到同一个选项卡视图都有效

然后在选项卡控制器中:

override func viewDidLoad() {
    super.viewDidLoad()

    // Do any additional setup after loading the view.
    (self.viewControllers![0] as! DailyChartsViewController).title="Daily"
    (self.viewControllers![0] as! DailyChartsViewController).tabBarItem.image=UIImage(named: "daily")
    (self.viewControllers![0] as! DailyChartsViewController).filter = 1
    (self.viewControllers![1] as! DailyChartsViewController).title="Weekly"
    (self.viewControllers![1] as! DailyChartsViewController).tabBarItem.image=UIImage(named: "weekly")
    (self.viewControllers![1] as! DailyChartsViewController).filter = 7
}

那么,我会在情节提要中保留多个子视图,只加载同一个类吗?@Designer023我不确定你的结构在情节提要中是什么样子的,但我的建议可能会导致一个父视图和一个子视图,其中的数据可以根据传递的筛选器首选项进行筛选。