如何将详细视图窗格标题设置为当前所选单元格的名称?

How do I set the detail view pane title the name of the currently selected cell?

在我的脑海里够简单吗? Select 单元格 - 将详细信息面板标题设置为当前选定单元格的名称。

如果您需要任何其他文件,请告诉我。任何帮助将不胜感激!!

我的MasterViewController.h如下

#import "MasterViewController.h"
#import "DetailViewController.h"
#import "TableViewCell.h"

@interface MasterViewController ()

@property NSMutableArray *objects;
@end

@implementation MasterViewController

- (void)awakeFromNib {
    [super awakeFromNib];
    self.clearsSelectionOnViewWillAppear = NO;
    self.preferredContentSize = CGSizeMake(320.0, 600.0);
}

- (IBAction)goHome{
    [self dismissViewControllerAnimated:YES completion:nil];
}

- (void)viewDidLoad {
    [super viewDidLoad];

    self.title = @"Root View Controller";

    //Add button to NavigationController
    UIBarButtonItem *goHome =
    [[UIBarButtonItem alloc] initWithTitle:NSLocalizedString(@"Home",)
                                     style:UIBarButtonItemStyleDone
                                    target:self
                                    action:@selector(goHome)];

    self.navigationItem.leftBarButtonItem = goHome;


    _subjectList = @[@"Art",
                     @"Business",
                     @"Citizenship",
                     @"Computer Science",
                     @"Dance",
                     @"Design Technology",
                     @"Drama",
                     @"English",
                     @"Food Technology",
                     @"Geography",
                     @"History",
                     @"ICT",
                     @"Languages",
                     @"Life Course",
                     @"Maths",
                     @"Media Studies",
                     @"Music",
                     @"PE",
                     @"Religious Studies",
                     @"Science",
                     @"Textiles",];


}



- (void)didReceiveMemoryWarning {
    [super didReceiveMemoryWarning];
    // Dispose of any resources that can be recreated.
}

#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 _subjectList.count;
}



-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {

    static NSString *CellIdentifier = @"TableViewCell";
    TableViewCell *Cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier forIndexPath:indexPath];

    long row = [indexPath row];
    Cell.SubjectNameLabel.text = _subjectList[row];

    return Cell;


}



- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
    if ([[segue identifier] isEqualToString:@"showDetail"]) {
        NSIndexPath *indexPath = [self.tableView indexPathForSelectedRow];
        NSDate *object = self.objects[indexPath.row];
        DetailViewController *controller = (DetailViewController *)[[segue destinationViewController] topViewController];
        [controller setDetailItem:object];
        controller.navigationItem.leftBarButtonItem = self.splitViewController.displayModeButtonItem;
        controller.navigationItem.leftItemsSupplementBackButton = YES;
        //THIS LINE BELOW IS WHERE I PLANNED ON SETTING THE TITLE?
        controller.navigationItem.title = selectedCell;
    }
}



@end

在细节视图控制器的 .h 文件中创建一个 NSString 属性。然后在 prepareForSegue 中将 string 属性 设置为 cell 的名称。您将从 tableViews 数据源中获取单元格标题的名称。

这就是我的意思:

DetailViewController.h 中插入以下内容:

@property (strong, nonatomic) NSString *titleName;

MasterViewController.m

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
    if ([[segue identifier] isEqualToString:@"showDetail"]) {
    NSIndexPath *indexPath = [self.tableView indexPathForSelectedRow];

    DetailViewController *controller = segue.destinationViewController;
    controller.titleName = [self.subjectList objectAtIndex:indexPath.row];
}

DetailViewController.mviewDidLoad 处插入以下内容:

self.navigationItem.title = self.titleName;

看看这个教程。它应该对你有很大帮助:detail view controller