Edit New issue iPad 搜索样式优化, 不隐藏Navigation #20

This commit is contained in:
life
2015-11-06 09:55:57 +08:00
parent 4f889e637e
commit c1b1cda1a4
6 changed files with 174 additions and 73 deletions

View File

@@ -846,13 +846,38 @@
return titleLen;
}
//
// ipadsearch bar, navigation
// ipadnavigationController, SWTableViewCell selectCell
// http://stackoverflow.com/a/5860412/4269908
//- (UINavigationController *)navigationController {
// if (IS_IPAD) {
// return nil;
// } else {
// return self.navigationController;
// }
//}
- (UINavigationController *)navigationController {
if(UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) {
NSString *sourceString = [[NSThread callStackSymbols] objectAtIndex:1];
// Example: 1 UIKit 0x00540c89 -[UIApplication _callInitializationDelegatesForURL:payload:suspended:] + 1163
NSCharacterSet *separatorSet = [NSCharacterSet characterSetWithCharactersInString:@" -[]+?.,"];
NSMutableArray *array = [NSMutableArray arrayWithArray:[sourceString componentsSeparatedByCharactersInSet:separatorSet]];
[array removeObject:@""];
// Array[3] == class caller
if([array[3] isEqualToString:@"UISearchDisplayController"]) {
return nil;
}
}
return [super navigationController];
}
//
#pragma mark - UISearchDisplayDelegate Methods
- (BOOL)searchDisplayController:(UISearchDisplayController *)controller shouldReloadTableForSearchString:(NSString *)searchString
{
NSLog(@"[%@ %@]", NSStringFromClass([self class]), NSStringFromSelector(_cmd));
// NSLog(@"[%@ %@]", NSStringFromClass([self class]), NSStringFromSelector(_cmd));
NSString *searchPredicate = [NSString stringWithFormat:@"title contains[cd] '%@' or content contains[cd] '%@'", searchString, searchString];
@@ -868,8 +893,10 @@
- (void)searchDisplayControllerWillBeginSearch:(UISearchDisplayController *)controller
{
[self setBarStyleBlack];
self.isSelectOnSearch = YES;
if (!IS_IPAD) {
[self setBarStyleBlack];
self.isSelectOnSearch = YES;
}
}
- (void)searchDisplayControllerWillEndSearch:(UISearchDisplayController *)controller
@@ -881,9 +908,11 @@
// reload ?
// [self.tableView reloadData];
[self restoreBarStyle];
self.isSelectOnSearch = NO;
if (!IS_IPAD) {
[self restoreBarStyle];
self.isSelectOnSearch = NO;
}
}
#pragma mark - UISearchBarDelegate Methods