我能否仅在对不同的 viewcontroller 触发特定操作后才重新加载 table?
Can I reload a table only after a certain action is triggered on a different viewcontroller?
这是我目前的情况。我只想在用户 'sends' 和 post 后重新加载 table。现在正在发生的事情是,每次主视图控制器激活时,它都会重新加载信息。这会导致一些问题,因为当用户 return 说 main viewcontroller 时,他们会失去他们的位置。
进一步分解。我有两个主要的风投。包含 post 的主页和 'create posts' 页面。我想要做的是,一旦用户点击 'create posts' 页面上的发送,就重新加载主 table。
override func viewDidAppear(animated: Bool) {
super.viewDidAppear(animated)
skip = 0
self.loadObjects()
}
这段代码目前会在主页面激活后重新加载信息,是的,它可以工作,但就像我提到的那样,如果用户向下滚动并离开主页面,一旦他们 return 他们的地方丢失了。
重申一下。我想这样做 self.loadobjects() 只有在用户点击 'create posts' viewcontroller 上的 'send' 时才会被调用。
有两种标准方法可以做到这一点:通知和引用(或委托)。由于我认为通知是完成此类任务的 "right" 方式,因此我将展示:
在按钮的操作方法中(用户按下“发送”按钮时调用的代码):
NSNotificationCenter.defaultCenter().postNotificationName("theyPressedTheButton", object: nil)
然后在具有 table 视图的视图控制器的 viewDidLoad
方法中:
NSNotificationCenter.defaultCenter().addObserver(self, selector: Selector("someMethodinThisClass:"), name: "theyPressedTheButton", object: nil)
然后在 class
的某处
fun someMethodinThisClass(notification : NSNotification)
在具有 table 视图的 class 的 deinint
方法中,您需要放置此代码以免泄漏
NSNotificationCenter.defaultCenter().removeObserver(self, name: "theyPressedTheButton", object: nil)
最后,在您的 "someMethod" 函数中,您可以重新加载 table 查看数据或您希望发生的任何其他事情。如果您遇到用户按下按钮时未加载视图的情况,则没有任何危害。您将 post 通知,但没有人会听到它。
这是我目前的情况。我只想在用户 'sends' 和 post 后重新加载 table。现在正在发生的事情是,每次主视图控制器激活时,它都会重新加载信息。这会导致一些问题,因为当用户 return 说 main viewcontroller 时,他们会失去他们的位置。
进一步分解。我有两个主要的风投。包含 post 的主页和 'create posts' 页面。我想要做的是,一旦用户点击 'create posts' 页面上的发送,就重新加载主 table。
override func viewDidAppear(animated: Bool) {
super.viewDidAppear(animated)
skip = 0
self.loadObjects()
}
这段代码目前会在主页面激活后重新加载信息,是的,它可以工作,但就像我提到的那样,如果用户向下滚动并离开主页面,一旦他们 return 他们的地方丢失了。
重申一下。我想这样做 self.loadobjects() 只有在用户点击 'create posts' viewcontroller 上的 'send' 时才会被调用。
有两种标准方法可以做到这一点:通知和引用(或委托)。由于我认为通知是完成此类任务的 "right" 方式,因此我将展示:
在按钮的操作方法中(用户按下“发送”按钮时调用的代码):
NSNotificationCenter.defaultCenter().postNotificationName("theyPressedTheButton", object: nil)
然后在具有 table 视图的视图控制器的 viewDidLoad
方法中:
NSNotificationCenter.defaultCenter().addObserver(self, selector: Selector("someMethodinThisClass:"), name: "theyPressedTheButton", object: nil)
然后在 class
的某处 fun someMethodinThisClass(notification : NSNotification)
在具有 table 视图的 class 的 deinint
方法中,您需要放置此代码以免泄漏
NSNotificationCenter.defaultCenter().removeObserver(self, name: "theyPressedTheButton", object: nil)
最后,在您的 "someMethod" 函数中,您可以重新加载 table 查看数据或您希望发生的任何其他事情。如果您遇到用户按下按钮时未加载视图的情况,则没有任何危害。您将 post 通知,但没有人会听到它。