使用segue从UITableViewController显示UIView

时间:2012-05-11 19:43:41

标签: xcode storyboard uitableview segue

我正在尝试使用故事板将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连接,名为storeDetailsS​​egue,从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显示,但在显示视图之前仍然无法更新标签。

0 个答案:

没有答案