2

さまざまなエントリを検索できるテーブルを作成しています。検索すると問題なく動作しますが、ボタンを押してテーブルビューをロードしたいと思います。しかし、実行時:

[self.tableView reloadData];

cellForRowAtIndexPathが呼び出されていない?! 私は同様の問題を抱えている多くの人々を読んだことがありますが、明らかに私は彼らの問題に対する解決策を理解することができません. 助けて :)

私のヘッダーファイル:

@protocol SearchViewControllerDelegate;

@interface SearchViewController : UIViewController <UISearchBarDelegate, UITableViewDelegate, UITableViewDataSource> {
    id <SearchViewControllerDelegate> delegate;

    NSMutableArray *listOfItems;
    NSMutableArray *listOfItemsDynamic;
    UITableView *tableView;
    IBOutlet UISearchBar *sBar;
}

@property (nonatomic, assign) id <SearchViewControllerDelegate> delegate;
@property (nonatomic, retain) UITableView *tableView;
- (void) searchTableView:(NSString *) searchText;
- (IBAction)done:(id)sender;
- (IBAction)refresh:(id)sender;
@end

@protocol SearchViewControllerDelegate
- (void)searchViewControllerDidFinish:(SearchViewController *)controller;
@end

ソースコードの一部:

@implementation SearchViewController

@synthesize delegate, tableView;
- (void)viewDidLoad {
    [super viewDidLoad];
    ...
}

- (void)searchBar:(UISearchBar *)searchBar textDidChange:(NSString *)searchText {
    [self searchTableView:searchText]; // Search all entries based on user input...
    [self.tableView reloadData]; // Works just fine
}

- (IBAction)refresh:(id)sender {    
    [self searchTableView:@"a"]; // Search all entries containing "a"...
    [self.tableView reloadData]; // FAILS! (cellForRowAtIndexPath not getting called...)
}

私を助けてください、私は目的の c にまったく慣れていないので、問題はおそらくデリゲートの動作などに関連しています...

4

0 に答える 0