相关疑难解决方法(0)

iPhone UITableView单元保持选中状态

在我的UITableView中,有时单元格在触摸后保持选中状态.因为它偶尔发生,我无法重现问题.

任何提示?也许它与tableView的unproper发布有关?

    - (void)tableView:(UITableView *)tableView 
    didSelectRowAtIndexPath:(NSIndexPath *)indexPath{   
    NSUInteger row = [indexPath row];

    [tableView deselectRowAtIndexPath:indexPath animated:YES];

switch (row) {
    case 0:
        FruitViewController *fruitController = [FruitViewController alloc];
        [fruitController retain];
        [fruitController initWithNibName:@"FruitView" bundle:[NSBundle mainBundle]];
        [self.navigationController pushViewController:fruitController animated:YES];
        [fruitController release];
        break;
    case 1: 
        CerealsViewController *cerealsController = [CerealsViewController alloc];
        [cerealsController retain];
        [cerealsController initWithNibName:@"CerealsView" bundle:[NSBundle mainBundle]];
        [self.navigationController pushViewController:cerealsController animated:YES];
        [cerealsController release];
        break;
    default:
        break;   
}
   }
Run Code Online (Sandbox Code Playgroud)

iphone cocoa-touch uitableview

45
推荐指数
4
解决办法
3万
查看次数

UITableView在返回时不会保留行

我的应用程序中有几个表视图.我熟悉表格的通常行为,当你选择一行并进入推动视图时,它会变为蓝色,然后当你返回时它会保持蓝色一瞬间然后渐变为白色,以便通知用户刚刚选择了哪一行

直到最近,当我注意到它不再是我所描述的最后一点时,它完美地工作了:它在那一瞬间没有保持蓝色......

我不明白为什么,但在阅读了这个网站上的一些相关帖子后,我意识到调用它的代码片段是在"viewDidAppear"方法中.令我困惑的是我没有覆盖这个方法,但是我确实用NSLog测试了它,以显示它应该取消选择的行的索引路径,返回(null).

所以这让我相信,不知何故,tableView过早地取消了行.

下面是我的didSelectRowForIndexPath方法:

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
    NSLog(@"Selected row at index path: %@", indexPath);

    //setting our view controller as what we want
    TripDetails *detailViewController = [[TripDetails alloc] initWithNibName:@"TripDetails" bundle:nil];
    self.tripsDetailViewController = detailViewController;
    [detailViewController release];


 // Pass the selected object to the new view controller.
    NSLog(@"Passing trip...");
    self.tripsDetailViewController.selectedTrip =  [fetchedResultsController objectAtIndexPath:indexPath];

    //Hide the bottom bar on pushed view
    tripsDetailViewController.hidesBottomBarWhenPushed = YES;

   [self.navigationController pushViewController:tripsDetailViewController animated:YES];

}
Run Code Online (Sandbox Code Playgroud)

非常感谢任何帮助,谢谢:)


编辑:修正

我得到了它....似乎我在我的viewWillAppear方法中调用[self.tableView reloadData]方法,然后导致表取消选择所有单元格.下面是我修改过的viewDidLoad方法.谢谢你的建议!

- (void)viewWillAppear:(BOOL)animated 
{
NSLog(@"running viewWIllAppear for TripsTable");

//Getting …
Run Code Online (Sandbox Code Playgroud)

iphone objective-c uitableview ios4

9
推荐指数
2
解决办法
2万
查看次数

当navigationController弹出视图时,取消选择所选单元格的内容是什么?

apple提供的默认NavigationController模板,它有一个navigationController和一个表.

如果选择一个单元格,新视图将被推送到navigationController中,如果弹出视图,所选单元格将自动取消高亮显示.

但是表如何知道何时去高亮它以及它如何知道选择了哪个单元?

或者它只是重新加载所有数据?

uitableview uinavigationcontroller

1
推荐指数
1
解决办法
1422
查看次数