ios - 只有在不同的 View Controller 上触发了某个 Action 后,我才能重新加载表格吗?

标签 ios swift uitableview loading

这就是我现在的情况。我只想在用户“发送”帖子后重新加载表格。现在发生的事情是,每次主视图 Controller 变为事件状态时,它都会重新加载信息。这会导致一些问题,因为当用户返回到所述主视图 Controller 时会失去位置。

进一步分解它。我有两个主要的风投。包含帖子的主页和“创建帖子”页面。我想做的是,一旦用户在“创建帖子”页面上点击发送,就重新加载主表。

override func viewDidAppear(animated: Bool) {
super.viewDidAppear(animated)
    skip = 0
self.loadObjects()

}

这段代码目前会在主页激活后重新加载信息,是的,它可以工作,但就像我提到的,如果用户向下滚动并从主页移动,一旦他们返回,他们的位置就会丢失。

重申一下。我想让 self.loadobjects() 只有在用户在“创建帖子” View Controller 上点击“发送”时才会被调用。

最佳答案

有两种标准方法可以做到这一点:通知和引用(或委托(delegate))。由于我认为通知是此类任务的“正确”方式,因此我将展示:

在按钮的操作方法中(用户按下“发送”按钮时调用的代码):

NSNotificationCenter.defaultCenter().postNotificationName("theyPressedTheButton", object: nil) 

然后在具有 TableView 的 View Controller 的 viewDidLoad 方法中:

NSNotificationCenter.defaultCenter().addObserver(self, selector: Selector("someMethodinThisClass:"), name: "theyPressedTheButton", object: nil)

然后在类(class)的某个地方

 fun someMethodinThisClass(notification : NSNotification)

在具有 tableview 的类的 deinint 方法中,您需要放置此代码,以免泄漏

NSNotificationCenter.defaultCenter().removeObserver(self, name: "theyPressedTheButton", object: nil)

最后,在您的“someMethod”函数中,您可以重新加载 tableview 数据或您希望发生的任何其他事情。如果您遇到用户按下按钮时未加载 View 的情况,则没有任何危害。您将发布通知,没有人会听到。

enter image description here

关于ios - 只有在不同的 View Controller 上触发了某个 Action 后,我才能重新加载表格吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32261071/

相关文章:

iphone - Scrollview 在dismissViewControllerAnimated 后没有滚动

ios - 无法使用来自 API 的数据在 UITableView 中插入单元格

ios - UIConfigurationColorTransformer 如何工作?

ios - [_UIBarItemAppearance setTitleColor:forState:]:无法识别的选择器已发送到实例

ios - 如何在iOS swift中基于一个字段过滤所有字段

ios - 如何从 WKWebView 获取服务器响应

ios - 在 Swift 4 中使用字典填充 UITableView 数据

ios - 通过单个字符串嵌套 UITableView

ios - 如何从 Xcode 中的代码覆盖范围中排除 Pod

ios - 为未调用的 UIButton 添加目标