Rak*_*G B 7 uitabbarcontroller uitableview ios swift
目前我有3个swift文件:ManualViewController,AutoViewController,Main
ManualViewController是带有表视图的UIViewController.AutoViewController是一个带有几个按钮的UIViewController.Main只是一个包含表视图所有数据的swift文件.
使用TabBarController控制ManualViewController和AutoViewController.
当我运行应用程序时,Main.swift中找到的初始内容将加载到表视图中.当我转到下一个视图即AutoViewController并单击按钮来更改Main.swift中的数据时,数据会发生变化.问题是当我切换回ManualViewController时,表仍然包含旧数据而不是更新数据.
我也试过这个:
override func viewWillAppear(animated: Bool)
{
super.viewWillAppear(false)
self.tableView.reloadData()
}
Run Code Online (Sandbox Code Playgroud)
它仍然没有用.
您可以NSNotificationCenter用于tableView从另一个视图更新您的。
你的-addObserver:声明在你的tableView控制器viewDidLoad方法中必须是这样的:
override func viewDidLoad() {
super.viewDidLoad()
NSNotificationCenter.defaultCenter().addObserver(self, selector: "refreshTable:", name: "refresh", object: nil)
}
Run Code Online (Sandbox Code Playgroud)
你的功能addObserver会喜欢:
func refreshTable(notification: NSNotification) {
println("Received Notification")
self.tableView.reloadData()
}
Run Code Online (Sandbox Code Playgroud)
现在,您可以在导航到tableView控制器时发布这样的通知:
NSNotificationCenter.defaultCenter().postNotificationName("refresh", object: nil, userInfo: nil)
Run Code Online (Sandbox Code Playgroud)
检查此示例项目以获取更多信息。
希望它会帮助你。
| 归档时间: |
|
| 查看次数: |
6530 次 |
| 最近记录: |