On OS 3.0, when allowsSelection = NO, it's not possible to select any row and it also cancels row highlighting.
On pre OS 3.0, the most obvious solution to disallow selection is to return nil in willSelectRowAtIndexPath, which is part of UITableViewDelegate
However, there are two problems with this approach:
1) It's not stable (i.e. from time to time a row do get selected...)
2) It is not canceling row highlighting
Any clue?