在IOS开发中的视图控制器之间共享对象状态

时间:2017-02-08 11:26:05

标签: ios uitableview uilocalnotification tableviewcell

我的应用在主TabViewController上有两个标签。

  • 第一个标签显示了我喜欢的水果清单。
  • 第二个标签在您输入时向api发送请求,搜索名称已搜索的水果。

如果用户点击任何水果,我会显示一个水果详细视图,可以在这里看到水果(如果它已经被喜欢,你可以不同)。

现在,我试图实现类似的目标:

  • 用户搜索水果
  • 用户喜欢水果
  • 用户导航回列表
  • 列表显示水果与"喜欢"图标突出显示

如何在选择行之前通知我所在的列表,单元格的状态更改(不喜欢,现在很喜欢)。 如何通知OTHER列表(在另一个标签中)同样的事情?

谢谢你们

修改

我会尝试展示一个真实的样本! 当你去appstore并搜索GMAIL时 First image, looking for an app

然后你去特色(图表,我不知道你的国家),并寻找相同的应用程序

Same app in another view controller

在任何这些视图控制器中下载时,另一个控制器显示相同的状态。这正是我想要做的。 download started by me on search list item shows status downloading on others lists

1 个答案:

答案 0 :(得分:1)

简单的方法是使用数组果实创建一个单例类。 例: 你有模特水果:

class Fruit {
       var name: String?
       var isLike: Bool?
}
class List: NSObject {
    static let sharedInstance = APIRequest()
    var fruits = [Fruit]()
}

每个viewcontroler都可以访问它:

var list = List.sharedInstance

每当1个水果喜欢或不喜欢时,更改该水果的属性,并使用NSNotification将更改通知给其他视图控制器。接收通知的Viewcontroller将访问singleton类的水果列表。