У меня есть реализация TTSearchTextFieldDelegate
в TTTableViewController
.
Мой заголовок выглядит так:
#import <Three20/Three20.h>
@protocol SearchTestControllerDelegate;
@class MockDataSource;
@interface SearchTestController : TTTableViewController <TTSearchTextFieldDelegate> {
id<SearchTestControllerDelegate> _delegate;
}
@property(nonatomic,assign) id<SearchTestControllerDelegate> delegate;
@end
@protocol SearchTestControllerDelegate <NSObject>
- (void)searchTestController:(SearchTestController*)controller didSelectObject:(id)object;
@end
Моя реализация выглядит так:
#import "SearchTestController.h"
#import "MockDataSource.h"
@implementation SearchTestController
@synthesize delegate = _delegate;
//////////////////////////////////////////////////////////////////////////////////
// NSObject
- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil {
if ((self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil])) {
_delegate = nil;
self.title = @"Search Test";
self.dataSource = [[[MockDataSource alloc] init] autorelease];
}
return self;
}
- (void)dealloc {
[super dealloc];
}
//////////////////////////////////////////////////////////////////////////////////
// UIViewController
- (void)loadView {
[super loadView];
TTTableViewController* searchController = [[[TTTableViewController alloc] init] autorelease];
searchController.dataSource = [[[MockSearchDataSource alloc] init] autorelease];
self.searchViewController = searchController;
self.tableView.tableHeaderView = _searchController.searchBar;
}
//////////////////////////////////////////////////////////////////////////////////
// TTTableViewController
- (void)didSelectObject:(id)object atIndexPath:(NSIndexPath*)indexPath {
[_delegate searchTestController:self didSelectObject:object];
}
//////////////////////////////////////////////////////////////////////////////////
// TTSearchTextFieldDelegate
- (void)textField:(TTSearchTextField*)textField didSelectObject:(id)object {
[_delegate searchTestController:self didSelectObject:object];
}
@end
Метод - (void)didSelectObject:(id)object atIndexPath:(NSIndexPath*)indexPath;
вызывается и работает отлично. Это когда ячейка в TTTableView
была выбрана.
Однако метод - (void)textField:(TTSearchTextField*)textField didSelectObject:(id)object
никогда не вызывается. Этот метод следует вызывать, когда я выбираю ячейку в TTTableView
после того, как что-то искал.
Что я делаю не так? Это в основном пример для TTCatalog
отсюда: https://github.com/facebook/three20/tree/master/samples/TTCatalog