When your main ViewController is from type UITableViewController, it has a property clearsSelectionOnViewWillAppear, which is per default YES – so it will clear the selection automatically.
This property is not available for an UITableView, i guess it’s because it has no ViewWillAppear method either.
A UIViewController doesn’t need this property because it has no UITableView originally.
conclusion: you’ll have to implement it by yourself when you do not use a UITableViewController.