【问题标题】:Segue in swift reload view在快速重新加载视图中进行 Segue
【发布时间】:2016-03-08 22:52:00
【问题描述】:

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

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

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

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

【问题讨论】:

  • 您的产品和过滤器是否在不同的视图中?
  • 是的,它们是不同的视图。
  • 你试过 NSNotificationCenter 了吗?

标签: swift swift2 segue viewdidload viewdidappear


【解决方案1】:

您应该定义自己的协议,我们将其命名为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")

【讨论】:

    猜你喜欢
    • 2015-06-01
    • 1970-01-01
    • 1970-01-01
    • 2016-06-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-09-28
    • 1970-01-01
    相关资源
    最近更新 更多