2013-07-11 4 views
0

Я пытаюсь отобразить панель поиска поверх UITableView главного экрана в представлении Master/Detail. Используя раскадровку, панель поиска не может быть помещена непосредственно под заголовком/баннером (который говорит «Мастер»), если у меня не будет количества ячеек прототипа, установленных на 0. Однако я не могу сделать его отображаемым независимо от того, где он отображается после того, как таблица заполняется. Я поставил его в поле зрения, которое находится поверх таблицы (SplashView), и попытался сделать его видимым/etc и поместил вид в поисковой строке поверх представления таблицы, но ничего.Панель поиска IOS через Master/Detail view

Я должен верить, что это возможно, но я не знаю, где я потерпел неудачу.

Также представляется, что изменение координаты x, y в этом случае не допускается. Является ли мастер/деталь особенным в некотором роде?

Любые советы были бы весьма признательны. Пожалуйста и спасибо! : пн:

Xcode 4.6.2

#import <UIKit/UIKit.h> 
#import <CoreData/CoreData.h> 

@interface EGMasterViewController : UITableViewController <NSFetchedResultsControllerDelegate, UISearchDisplayDelegate, UISearchBarDelegate> 
@property (strong, nonatomic) IBOutlet UISearchBar *searchBar; 
@property (weak, nonatomic) IBOutlet UILabel *loadingLabel; 
@property (strong, nonatomic) IBOutlet UIPanGestureRecognizer *panGestureRecognizer; 
- (IBAction)panGestureDetected:(id)sender; 

@property (weak, nonatomic) IBOutlet UIView *SplashView; 
@property (weak, nonatomic) IBOutlet UIActivityIndicatorView *spinner; 
@property (strong, nonatomic) NSFetchedResultsController *fetchedResultsController; 
@property (strong, nonatomic) NSManagedObjectContext *managedObjectContext; 

@end 

и:

- (void) searchForEvent: (id) sender 
{ 
    UIView * vptr = [self view]; 
    [self.SplashView setHidden:NO]; 
    [self.searchBar setHidden:NO]; 
    [self.spinner setHidden:YES]; 
    [self.loadingLabel setHidden:YES]; 
    [vptr bringSubviewToFront:self.searchBar]; 
} 

ответ

0

Просто добавьте UISearchDisplayController в раскадровку, подключите контроллер представления с ним, а затем добавить SearchBar поискового дисплея в представлении заголовка таблицы во время выполнения. Что-то вроде:

- (void)viewDidLoad{ 
[self.tableView setTableHeaderView:self.searchDisplayController.searchBar]; 
[super viewDidLoad]; 
} 
+0

спасибо. Это было бы правильно, если бы я поступил правильно и использовал «нормальный» контроллер представлений. Я не понимал, что «он» выбрал UITableViewController, которому действительно не нравится, что он находится на вершине. Более короткий правильный ответ: не используйте UITableViewController. Когда-либо :) –

+0

Umm, no. Вы можете добавить UISearchDisplayController в свой UITableViewController внутри вашего раскадровки. Однако панель поиска не будет отображаться на вашем контроллере просмотра, поэтому вам нужно добавить фрагмент кода, который я упомянул, чтобы добавить его во время выполнения. – J2theC

Смежные вопросы