2

我想大致知道何时调用了包括主题中所述关键词的方法。

例如:

– tableView:willSelectRowAtIndexPath:
– tableView:didSelectRowAtIndexPath:
- (BOOL)tableView:(NSTableView *)aTableView shouldSelectRow:(NSInteger)rowIndex

什么时候会调用 willSelectRow 方法?包含关键词“will”“did”和“should”的方法是什么意思

同样,还有 viewDidAppear 和 viewWillAppear。调用 viewDidAppear 方法时很明显。但是 viewWillAppear 是远远超出我的。

希望有人可以提供帮助;)

4

3 回答 3

8

将要:

用于表示某事将要发生(即将发生)。有点像“我要去商店”。

做过:

用于表示某事确实发生了(已经发生)。有点像“我确实去过商店”。

应该:

几乎总是用作返回BOOL. 例如,

- (BOOL)tableView:(NSTableView *)aTableView shouldSelectRow:(NSInteger)rowIndex    

表视图询问您是否要允许此时选择指定索引处的行。就像你问别人,'我应该去商店吗?

viewWillAppear

这实际上并没有什么特别之处——只是系统告诉你的视图控制器,“嘿,你的视图即将显示在屏幕上,你最好做好准备!”

于 2013-05-02T16:42:29.467 回答
4

willSelectRow:告诉代理即将选择指定的行。

didSelectRow:告诉委托指定的行现在被选中。

should:返回表视图是否应该允许选择指定的行。

它与 viewDidAppear 和 viewWillAppear 的工作方式相同。

viewDidAppear:视图已经出现。

viewWillAppear:视图即将出现。

您可以在苹果文档中了解更多信息。

我希望这有帮助!

于 2013-05-02T16:45:54.077 回答
0

想象一下编写一个包含食谱的应用程序,由国家健康饮食委员会赞助。

您的赞助商为您提供了 10 份清蒸蔬菜食谱,以及一份解释如何制作奶油、杏仁糖和果酱的美味甜点。

赞助商的要求是:

  • 食谱必须根据用户的喜好以公制/英制单位显示。
  • 有传言说,有些人对清蒸蔬菜食谱天生不感兴趣,因此每浏览 3 次食谱,屏幕底部必须显示一个可爱的兔子吃胡萝卜的动画,以使应用程序更受欢迎。
  • 当用户浏览了 5 种蒸菜食谱时,他们有权查看甜点食谱。一次。

为了满足这些要求,您可以通过以下方式使用方法/通知:

在 上viewWillAppear,以公制或英制单位计算重量和体积,并将正确的文本放在配方页面上的各种标签和文本字段中。这保证了文本在显示给用户时已经更新。如果您在 中执行此操作viewDidAppear,则更新文本时会出现短暂的可见闪光。

在 上viewDidAppear,您知道配方已正确设置并且用户可以在屏幕上看到。这意味着如果满足条件,您可以启动兔子的动画。如果您在 中开始动画viewWillAppear,它将开始太早。

最后,如果偷偷摸摸的用户试图点击甜点食谱,您将收到tableView:shouldSelectRow:消息。检查是否满足条件(如果他们已经查看了 5 个蒸菜食谱),如果满足,则返回 YES。否则返回 NO,行选择将被系统取消(并且甜点食谱没有实例化和显示)。

于 2013-05-02T17:25:33.257 回答