A: 

The first issue seems to be somehow related to timing. I got it work with this:

- (void)viewDidAppear:(BOOL)animated {
    [super viewDidAppear:animated];
    [self performSelector:@selector(toTheSearchbar) withObject:self afterDelay:0];
}

- (void)toTheSearchbar {
    [self.searchDisplayController setActive:YES];
    [self.searchDisplayController.searchBar becomeFirstResponder];
}

Even a delay of 0 works fine, without it I get the white lines.

Jeena
A: 

The problem with "no results" is still a problem. I found at a apple support forum that it is not implemented this way. So I was looking for workarounds. The first thing you want to do is:

- (BOOL)searchDisplayController:(UISearchDisplayController *)controller shouldReloadTableForSearchString:(NSString *)searchString {
    if([searchString length] < 1) [items removeAllObjects];
    if ([items count] < 1) {
     [controller.searchResultsTableView setBackgroundColor:[UIColor colorWithWhite:0.0 alpha:0.8]];
     [controller.searchResultsTableView setRowHeight:800];  
    }
    return YES;
}

That way you get just one big table cell which looks gray and translucent. When you reloaded the searchTableView then you want to change this changes back:

- (void)gotDataReload {
    [self.searchDisplayController.searchResultsTableView reloadData];
    [self.searchDisplayController.searchResultsTableView setBackgroundColor:[UIColor whiteColor]];
    [self.searchDisplayController.searchResultsTableView setRowHeight:44];
}

Hope this helps the next one who has this problems.

Jeena