我有一个产品页面,显示产品和过滤页面。过滤页面上有一个按钮,根据情况有2个条件。根据过滤器我显示数据库中的不同产品。
我有一个问题。如果用户进入过滤器屏幕而没有选择任何内容,我应该返回同一页面而不再加载我的视图。
如果从过滤器视图中选择了任何内容,则此segue应重新加载我的产品屏幕并使用选定的过滤器获取正确的数据。
如何设置此按钮以使用2种不同的类型?
答案 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")
。