1

我正在尝试使用情节提要将 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;
}

我从 UITableViewController 到 UIView 连接了一个名为 storeDetailsS​​egue 的 segue。我正在尝试使用 prepareForSeque 方法来触发下一个视图,但对以下代码没有运气。

-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {

    NSIndexPath *path = [self.tableView indexPathForSelectedRow];
    StoreDetailsView *detail = [self detailForIndexPath:path];
    [segue.destinationViewController setDetail:detail];
}

正如它一直说的那样,有一个错误,因为“AtoZController 声明选择器'detailForIndexPath'”没有可见的@interface。我可能做错了什么,因为我以前从未使用过故事板。我想要的是一个简单的 UIView 显示一个标签,该标签动态更改以显示已选择的行号。

我不知道 UITableViewController 实际上是否应该是 UITableView 但由于我从未使用过 segue 或故事板,我不知道是什么导致了问题。

任何建议都将不胜感激。

更新:

所以我设法让 UIViewController 显示,但在显示视图之前仍然无法更新标签。

4

0 回答 0