UITableViewController
ユーザーによる以前の選択に応じて動的に入力される があります。場合によっては、ユーザーはテーブル内の複数の行を選択できる必要がありますが、そうでない場合もあります。どちらの場合も最初の行を自動的に選択したいのですが、 がある場合にのみ機能することがわかりましたallowsMultipleSelection = YES
。
次のコードは、-(void)viewDidLoad
switch(self.field)
{
case people:
self.options = (NSArray *)[data objectForKey:@"People"];
self.tableView.allowsMultipleSelection = YES;
enter code here break;
case place:
self.options = (NSArray *)[data objectForKey:@"Places"];
self.tableView.allowsMultipleSelection = NO;
break;
case reason:
self.options = (NSArray *)[data objectForKey:@"Reasons"];
self.tableView.allowsMultipleSelection = NO;
break;
}
[self.tableView reloadData];
NSIndexPath *zeroPath = [NSIndexPath indexPathForRow:0 inSection:0];
[self.tableView selectRowAtIndexPath:zeroPath animated:NO scrollPosition:UITableViewScrollPositionNone];
これは、「People」のケースでは正しく機能しますが、他のケースでは正しく機能しません。に設定allowMultipleSelection
してみましYES
たが、選択の問題は解決しましたが、アプリケーション ロジックの観点からは受け入れられません。
これらの機能がどのように機能するかについて何か不足していますか? 単一の選択テーブルの行をプログラムで選択するにはどうすればよいですか?