快速重新加载视图

时间:2016-03-08 22:52:00

标签: swift swift2 segue viewdidload viewdidappear

我有一个产品页面,显示产品和过滤页面。过滤页面上有一个按钮,根据情况有2个条件。根据过滤器我显示数据库中的不同产品。

我有一个问题。如果用户进入过滤器屏幕而没有选择任何内容,我应该返回同一页面而不再加载我的视图。

如果从过滤器视图中选择了任何内容,则此segue应重新加载我的产品屏幕并使用选定的过滤器获取正确的数据。

如何设置此按钮以使用2种不同的类型?

1 个答案:

答案 0 :(得分:0)

您应该定义自己的协议,并将其命名为FilterSelector

protocol FilterSelector{
    func selectFilter(filter: String)
}

然后在用户将选择过滤器的FiltersViewController中,您应该定义delegate名称filterSelectorDelegate

var filterSelectorDelegate: FilterSelector!

然后在产品页面中,您将实现FilterSelector协议,如此

extension ProductsViewController: FilterSelector{
     func selectFilter(filter: String){
        //Dismiss the filtersViewController 
        //and do what you want with the selected filter
     } 
}

最后,在“产品”页面中,您应该在显示过滤器页面时设置filterDelegate。在过滤器页面中,当用户选择过滤器时,您将调用filterSelectorDelegate.selectFilter("selectedFilter")