1

テーブルビューに行を追加する方法を学ぶためにドキュメントを読んでいたところ、次の例が見つかりました:

- (void)save:sender {

    UITextField *textField = [(EditableTableViewTextField *)[tableView cellForRowAtIndexPath:[NSIndexPath indexPathForRow:0 inSection:0]] textField];

    SimpleEditableListAppDelegate *controller = (SimpleEditableListAppDelegate *)[[UIApplication sharedApplication] delegate];
    NSString *newItem = textField.text;

    if (newItem != nil) {
        [controller insertObject:newItem inListAtIndex:[controller countOfList]];
    }

    [self dismissModalViewControllerAnimated:YES];

}

私は方法を理解していません :insertObject:inListAtIndex:または何の[[UIApplication sharedApplication] delegate];略ですか; データを plist ファイルに入れていますか? 誰かが私にこれを説明できますか?ドキュメントUIApplication本当に役に立ちません。

4

2 に答える 2

2

[[UIApplication sharedApplication] delegate]はメインのアプリケーションデリゲートです。通常、これは。という名前のクラスAppDelegateです。メインアプリケーションデリゲートは、アプリケーションの起動時に作成され、アプリケーションのメインコントローラーです。

このクラスに似たものをクラスとして使用していると仮定しますAppDelegate

[controller insertObject:newItem inListAtIndex:[controller countOfList]];

AppDelegateこれは、クラスに名前付きのメソッドがあることを前提としていますinsertObject:inListAtIndex:。リンクしたクラスの場合、メソッドは次のようになります。

- (void)insertObject:(id)obj inListAtIndex:(NSUInteger)theIndex {
    [list insertObject:obj atIndex:theIndex];
}

AppDelegateしたがって、この場合、そのメソッドは、オブジェクトをクラスのメンバー変数に追加しますList

于 2012-04-04T19:42:51.743 に答える
0

plistへの接続はありません。デリゲートの助けを借りてメッセージを交換するだけで、テーブル ビューを変更できます。

アップルのドキュメントから:

テーブル ビューが編集モードになり、ユーザーが編集コントロールをクリックすると、テーブル ビューはデータ ソースとデリゲートに一連のメッセージを送信しますが、それらがこれらのメソッドを実装している場合のみです。これらのメソッドにより、データ ソースとデリゲートはテーブル ビュー内の行の外観と動作を調整できます。メッセージにより、削除または挿入操作を実行することもできます。

これを読んでください: http://developer.apple.com/library/ios/#documentation/userexperience/conceptual/TableView_iPhone/ManageInsertDeleteRow/ManageInsertDeleteRow.html

そして最高の本の 1 つ - iPhone 4 (または 5) の始まり

于 2012-04-04T19:14:51.690 に答える