我想点击一个单元格,首先我要链接一个帐户(Dropbox或日历或提醒或其他人),同时如果链接成功,我想要勾选单元格。 我的问题是,一旦链接了我必须再次点击单元格以添加复选标记。可以通过单击该单元格来完成这两项操作吗?
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
UITableViewCell *cell=[tableView cellForRowAtIndexPath:indexPath];
if (![[DBSession sharedSession]isLinked]) {
[[DBSession sharedSession] linkFromController:self];
if ([[DBSession sharedSession]isLinked])
cell.accessoryType = UITableViewCellAccessoryCheckmark;
}
}
答案 0 :(得分:1)
当您第一次选择单元格时,单元格被勾选并且当您选择其他单元格时,则取消选择所有其他单元格。
将此代码放入Didselect方法中。
UITableViewCell *cell = [tableView cellForRowAtIndexPath:indexPath];
cellStr = cell.textLabel.text;
cell.accessoryType = UITableViewCellAccessoryCheckmark;
将此代码放入Diddeselect方法
中UITableViewCell *cell = [tableView cellForRowAtIndexPath:indexPath];
cell.accessoryType = UITableViewCellAccessoryNone;
答案 1 :(得分:0)
如果用户已连接其帐户,则无需查看您需要查看的回调类型。我建议你做的唯一事情是在viewDidAppear
上运行以下代码。
注意我不知道这是否有效,因为我不确定在用户看到添加帐户的屏幕后是否会触发viewDidAppear
。因为我不知道那是怎么实现的。
- (void)viewDidAppear:(BOOL)animated
{
// Check Dropbox
NSIndexPath dropboxIndex = [NSIndexPath indexPathForRow:1 inSection:0];
UITableViewCell *cell=[tableView cellForRowAtIndexPath:dropboxIndex];
if (![[DBSession sharedSession]isLinked]) {
[[DBSession sharedSession] linkFromController:self];
if ([[DBSession sharedSession]isLinked])
cell.accessoryType = UITableViewCellAccessoryCheckmark;
// Check calendar
// same as above
// Check reminder
// same as above
}
修改强>
首先你需要看看这个。 Dropbox SDK - linkFromController: delegate or callback?
以上是您检测到Dropbox已被链接的方式。
然后当appDelegate
收到成功消息时,使用NSNotificationCenter
向屏幕发送消息并运行我上面提供的代码。