UISplitViewController - 从详细信息更新主表视图
Posted
技术标签:
【中文标题】UISplitViewController - 从详细信息更新主表视图【英文标题】:UISplitViewController - update Master tableview from Detail 【发布时间】:2018-01-25 01:31:23 【问题描述】:我有一个 iPad Master-Detail 应用程序,DetailViewController
有一个表单来向 API 提交 POST 请求。
如果成功,使用刚刚创建的对象更新主控tableView
的正确方法是什么?
DetailViewController POST 方法:
@IBAction func saveButton(_ sender: Any)
// Getting data from UITextFields
if let name = nameTextField.text, let parent = parentTextField.text, let email = emailTextField.text, let phoneString = phoneTextField.text, let period = periodSegmentedControl.titleForSegment(at: periodSegmentedControl.selectedSegmentIndex)
guard let phone = Int(phoneString) else return
let parameters: Parameters = [
"name": name,
"parent": parent,
"email": email,
"phone": phone,
"period" : period
]
Alamofire.request(endpoint, method: .post, parameters: parameters)
.responseJSON response in
switch response.result
case .success:
print("Validation Successful")
//Here's where i should update Master tableView (?)
case .failure(let error):
print(error)
我在 *** 中搜索过类似的答案,但没有找到任何有效的方法。
Ps:抱歉代码不好,这里只是以swift开头。
【问题讨论】:
要么使用委托,要么从 self.splitViewController?.viewControllers 获取委托 @koropok 你能告诉我一个使用 viewControllers 数组调用方法在 tableview (Master) 中重新加载数据的示例吗?我已经尝试了几天,但没有成功。 【参考方案1】:假设你的主人是一个带有表格视图的 UIViewController...
class MasterViewController: UIViewController
func reloadMasterData()
// Do whatever updates to your tableView's datasource
self.tableView.reloadData()
class DetailViewController: UIViewController
func updateMaster()
// Call this func on Alamofire request success
guard let master = self.splitViewController.viewControllers.first as? MasterViewController else
return
master.reloadMasterData()
【讨论】:
以上是关于UISplitViewController - 从详细信息更新主表视图的主要内容,如果未能解决你的问题,请参考以下文章
从 UISplitViewController 呈现的 modalViewController 出现方向错误
UISplitViewController - 从详细信息更新主表视图
UISplitViewController 从任何地方平移到主视图
从 UISplitViewController 显示时,UITableViewController 自动滚动停止考虑键盘
如何从 UISplitViewController IOS 5 导航回来?
从 UISplitViewController 中的 Detail 视图控制器导航到正常的全尺寸 UIViewController