2

トピックに記載されているキーワードを含むメソッドがいつ呼び出されたかを一般的に知りたいです。

例えば:

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

willSelectRow メソッドはいつ呼び出されますか? 「意志」「した」「すべき」というキーワードを含む方法は何を意味しますか

同様に、viewDidAppear と viewWillAppear があります。viewDidAppear メソッドがいつ呼び出されたかは明らかです。しかし、viewWillAppear は私をはるかに超えています。

誰かが助けてくれることを願っています;)

4

3 に答える 3

8

意思:

何かが起こる(起ころうとしている)ことを示すために使用されます。「お店に行きます」みたいな。

やりました:

何かが起こった(起こった)ことを示すために使用されます。「お店に行った」みたいな。

したほうがいい:

ほとんどの場合、 を返すデリゲート メソッドとして使用されますBOOL。例えば、

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

この時点で、指定されたインデックスの行を選択できるようにするかどうかを、テーブル ビューから尋ねられます。あなたが誰かに「店に行くべきですか?」と尋ねるように。

viewWillAppear

これには特別なことは何もありません。システムがView Controllerに「ビューが画面に表示されようとしています。準備をしてください!」と伝えているだけです。

于 2013-05-02T16:42:29.467 に答える
4

willSelectRow:指定された行が選択されようとしていることをデリゲートに伝えます。

didSelectRow : 指定された行が現在選択されていることをデリゲートに伝えます。

should:テーブル ビューで指定された行の選択を許可するかどうかを返します。

これは、viewDidAppear および viewWillAppear と同じように機能します。

viewDidAppear:ビューは既に表示されています。

viewWillAppear:ビューが表示されようとしています。

詳細については、Apple のドキュメントを参照してください。

お役に立てば幸いです!

于 2013-05-02T16:45:54.077 に答える
0

National Board for Healthy Eating が後援する、レシピを保持するアプリを作成することを想像してみてください。

あなたのスポンサーは、蒸し野菜の 10 のレシピと、クリーム、マジパン、ジャムのおいしいデザートの作り方を説明する 1 つのレシピを提供してくれました。

スポンサーの要件は次のとおりです。

  • レシピは、ユーザーの好みに応じてメートル/インペリアル単位で表示する必要があります。
  • 蒸し野菜のレシピに自然に興奮しない人もいるという噂があるため、レシピの 3 ページビューごとに、ニンジンを食べるかわいいウサギのアニメーションを画面の下部に表示して、アプリの人気を高める必要があります。
  • ユーザーが蒸し野菜のレシピを 5 つ表示すると、デザートのレシピを表示する権利が与えられます。一度。

これらの要件を満たすために、メソッド/通知を次のように使用できます。

viewWillAppearで、重量と体積をメートル法または帝国単位で計算し、レシピ ページのさまざまなラベルとテキスト フィールドに正しいテキストを入力します。これにより、ユーザーに表示されるときにテキストが既に更新されていることが保証されます。でこれを行うとviewDidAppear、テキストが更新されるときに短いフラッシュが表示されます。

では、レシピが正しく設定され、画面上viewDidAppearでユーザーに表示されていることがわかります。これは、条件が満たされた場合にウサギのアニメーションを開始できることを意味します。でアニメーションを開始するviewWillAppearと、開始が早すぎます。

最後に、悪意のあるユーザーがデザートのレシピをクリックしようとすると、tableView:shouldSelectRow:メッセージが表示されます。条件が満たされているかどうか (既に 5 つの蒸し野菜のレシピを表示している場合) を確認し、満たされている場合は YES を返します。それ以外の場合は NO が返され、行の選択はシステムによってキャンセルされます (デザート レシピはインスタンス化されず、表示されません)。

于 2013-05-02T17:25:33.257 に答える