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