我正在尝试使用故事板将UITableViewController连接到UIView。我有一个TabBarController连接到一个导航控制器,显示一个UITableViewController,显示一个小数组。我想点击一行,然后触发带有标签的简单UIView,仍然显示在UINavigationController中,这样我就可以导航回UITableViewController
我可以让UITableViewController与数组一起显示OK,但是当我选择它时,我无法触发该行。
这是我的UITableViewController(AtoZController.m)文件:
#import "AtoZController.h"
#import "StoreDetailsView.h"
@interface AtoZController ()
@end
@implementation AtoZController
- (void)viewDidLoad
{
[super viewDidLoad];
self.title = NSLocalizedString(@"A to Z", @"An A to Z List of Stores");
AtoZArray = [[NSMutableArray alloc] init];
[AtoZArray addObject:@"Apple"];
[AtoZArray addObject:@"Boots"];
[AtoZArray addObject:@"Topman"];
}
- (void)viewDidUnload
{
[super viewDidUnload];
// Release any retained subviews of the main view.
}
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
if ([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPhone) {
return (interfaceOrientation != UIInterfaceOrientationPortraitUpsideDown);
} else {
return YES;
}
}
#pragma mark - Table view data source
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
{
// Return the number of sections.
return 1;
}
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
// Return the number of rows in the section.
return [AtoZArray count];
}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *CellIdentifier = @"Cell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (!cell) {
cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];
}
// Configure the cell...
NSInteger row = [indexPath row];
cell.textLabel.text = [AtoZArray objectAtIndex:row];
return cell;
}
我有一个segue连接,名为storeDetailsSegue,从UITableViewController到UIView。我正在尝试使用prepareForSeque方法来触发下一个视图,但是对于以下代码没有运气。
-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
NSIndexPath *path = [self.tableView indexPathForSelectedRow];
StoreDetailsView *detail = [self detailForIndexPath:path];
[segue.destinationViewController setDetail:detail];
}
因为它一直说错误,因为'没有可见的@interface for“AtoZController声明选择器'detailForIndexPath'”。我可能正在做一些完全错误的事情,因为我之前从未使用过故事板。我想要的是一个简单的UIView显示一个动态变化的标签,以显示已选择的行号。
我不知道UITableViewController是否应该是一个UITableView,但由于我从未使用过segues或storyboards,我不知道是什么导致了这个问题。
任何建议都会非常感激。
更新:
所以我设法让UIViewController显示,但在显示视图之前仍然无法更新标签。