動的テーブルビューセル(検索結果テーブルの一部として)から特定のビューコントローラーにリンクしようとしています
これまでに実装したコードは次のとおりです。
SearchViewController.h
import <UIKit/UIKit.h>
@interface SearchViewController : UITableViewController <UISearchDisplayDelegate, UISearchDisplayDelegate>
@property (strong,nonatomic) NSArray *sysTArray;
@property (strong,nonatomic) NSMutableArray *filteredsysTArry;
@property IBOutlet UISearchBar *sysTSearchBar;
@end
SearchViewController.M
#import "SearchViewController.h"
#import "sysT.h"
@interface SearchViewController ()
@end
@implementation SearchViewController
@synthesize sysTArray;
@synthesize filteredsysTArry;
@synthesize sysTSearchBar;
- (id)initWithStyle:(UITableViewStyle)style
{
self = [super initWithStyle:style];
if (self) {
// Custom initialization
}
return self;
}
- (void)viewDidLoad
{
[super viewDidLoad];
sysTArray = [NSArray arrayWithObjects:
[sysT sysTOfCategory:@"p" name:@"H1"],
[sysT sysTOfCategory:@"p" name:@"W2"],
[sysT sysTOfCategory:@"p" name:@"W3"],
[sysT sysTtOfCategory:@"p" name:@"C4"],
[sysT sysTOfCategory:@"c" name:@"O5"],
[sysT sysTOfCategory:@"c" name:@"C6"],
[sysT sysTOfCategory:@"a" name:@"L7"], nil];
self.filteredSysTArry = [NSMutableArray arrayWithCapacity:[sysTArray count]];
[self.tableView reloadData];
}
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
if (tableView == self.searchDisplayController.searchResultsTableView) {
return [filteredsysTArry count];
}else{
return [sysTArray count];
}
}
- (void)didReceiveMemoryWarning
{
[super didReceiveMemoryWarning];
}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath: (NSIndexPath *)indexPath {
static NSString *CellIdentifier = @"Cell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if ( cell == nil) {
cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];
}
SysT *sysT = nil;
if (tableView == self.searchDisplayController.searchResultsTableView) {
sysT = [filteredsysTArry objectAtIndex:indexPath.row];
}else{
sysT = [sysTArray objectAtIndex:indexPath.row];
}
cell.textLabel.text = sysT.name;
[cell setAccessoryType:UITableViewCellAccessoryDisclosureIndicator];
return cell;
}
#pragma mark Search Filtering
-(void)filterContentForSearchText:(NSString*) searchText scope:(NSString*)scope {
[self.filteredSysTArry removeAllObjects];
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"SELF.name contains[c] %@", searchText];
filteredSysTArry = [NSMutableArray arrayWithArray:[sysTArray filteredArrayUsingPredicate:predicate]];
}
#pragma mark - UISearchDisplayController Delegate Methods
-(BOOL)searchDisplayController:(UISearchDisplayController *)controller shouldReloadTableForSearchString:(NSString *)searchString {
[self filterContentForSearchText:searchString scope:
[[self.searchDisplayController.searchBar scopeButtonTitles] objectAtIndex: [self.searchDisplayController.searchBar selectedScopeButtonIndex]]];
return YES;
}
-(BOOL) searchDisplayController:(UISearchDisplayController *)controller shouldReloadTableForSearchScope:(NSInteger)searchOption {
[self filterContentForSearchText:self.searchDisplayController.searchBar.text scope:
[[self.searchDisplayController.searchBar scopeButtonTitles] objectAtIndex:searchOption]];
return YES;}
@end
動的セル内のデータに応じて、特定のView Controllerを開始するにはどうすればよいですか?
さらに詳しく説明すると、ユーザーがH1を検索し、その動的セルをクリックした場合、関連するH1ビューコントローラーをどのように表示しますか?
私の非常に大まかなコードからおそらくわかるように、私は急な学習曲線にあります。あなたが可能な限り赤ちゃんの証拠としてあなたの答えを出すことができれば、それは素晴らしいでしょう、そして本当に私を助けてくれるでしょう。(また、ストーリーボードを使用しています)。
ありがとう!