1

私は4行のテーブルを持っており、それぞれにタイトルとスイッチがアクセサリとして付いています。対応するスイッチがタップされたときにplistブール値を更新したいのですが。

Plist:

<array>
    <dict>
        <key>Bools</key>
        <array>
            <false/>
            <false/>
            <false/>
            <false/>
        </array>
        <key>Strings</key>
        <array>
            <string>String0</string>
            <string>String1</string>
            <string>String2</string>
            <string>String3</string>
        </array>
    </dict>
</array>

データソースのメソッドは次のとおりです。

- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView; {
return [allergens count];
}

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section; {
return [[[allergens objectAtIndex: section] objectForKey: @"Strings"] count];
}

- (NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section; {
return @"Header";
}

これが私のスイッチで、セレクターが付いています:switchToggled

UISwitch *switchView = [[UISwitch alloc] initWithFrame:CGRectZero];
cell.accessoryView = switchView;
[switchView addTarget:self action:@selector(switchToggled:) forControlEvents: UIControlEventTouchUpInside];

以下はIBActionメソッドです。をログに正常にswitch tapped表示できるので、すべてが機能していることがわかります。更新する正しいブール値を取得する方法がわかりません。

- (IBAction)switchToggled:(id)sender {
NSLog(@"switch tapped");
}

どんな助けでも大歓迎です!ありがとう。

4

1 に答える 1

0

これを投稿したとき、私はプログラミングに慣れていなかったので、実行時にメインバンドルの plist をプログラムで編集できないことに気づきませんでした。必要な効果を得るには、最初の plist をアプリ ドキュメント ディレクトリに保存し、そこから作業する必要があることを理解しました。この記事を使用して、ドキュメント ディレクトリとの間でデータを保存およびロードするプロセスをフォーマットしました。

于 2012-12-17T19:55:37.910 に答える