iOS swift UIBarButtonItem 操作

标签 ios swift uitableview uinavigationcontroller

我有一个嵌入了导航 Controller 的表格 View 。我添加了一个 UIBarButtonItem(添加)按钮。当我单击此按钮时,它会打开一个新 View ,用户在其中输入数据并提交数据(这会进行 Web 服务调用),然后返回到之前的 View 。此导航发生如下所示,

func addTapped(_ sender:UIBarButtonItem) {
     print("Called Add")
     let vc = (storyboard?.instantiateViewController( withIdentifier: "newNote")) as! newNoteVC
     self.navigationController?.pushViewController(vc, animated: true)
}

在新 View 中,我执行以下操作,

@IBAction func saveButton(_ sender: UIButton) {
    if (self.noteDescription.text?.isEmpty)! {
        print("Enter missing note description")
        return
    } else {
        let desc = self.noteDescription.text
        self.uploadNote(noteText: desc!, noteDate: self.dateInMilliseconds)
        self.navigationController?.popViewController(animated: true)
    }
}

这样,一条记录被保存,一个 View 从导航 Controller 堆栈中弹出,但我唯一不知道如何做的是刷新父 View 中的 TableView 数据(我可能需要创建一个新的http服务)调用读取所有记录)。

我希望我能解释一下这个问题?如有任何帮助,我们将不胜感激。

最佳答案

正如评论中提到的,仅仅为了更新 TableView 而进行服务调用可能有点矫枉过正。但是,如果这是需要实现的业务场景,您可以在

func viewWillAppear

在父 View Controller 中。您可以在此方法中进行服务调用并使用数据重新加载 TableView 。 您还需要检查应用程序的整体导航,因为在 viewWillAppear 方法中进行服务调用并不是一个好方法,因为每次显示 View 时都会调用这些服务。例如:如果从导航 View 返回,则也会调用该方法。

关于iOS swift UIBarButtonItem 操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46181588/

相关文章:

ios - XCode 不接受我的 CLLocationCoordinate2D。说 "invalid region"

ios - 根据文本量更改 UITableViewCell 高度

arrays - Swift Cast as Generic 与 UInt 崩溃

swift - 用户界面 Split View : access UITabBarController from appDelegate

ios - 如何使节标题 float 在 UITableView ..

ios - 在 TableView 中从底部添加新数据

ios - 触摸屏幕时如何在 Swift 中关闭键盘

ios - 格式化 NSTimeInterval

ios - swift iOS : Insert data into related entities in CoreData

iphone - UITableView的UITableViewCell下两种方式访问​​UIImageView的区别