2015年7月5日星期日

[笔记][08723] Table View Segue to Detail View Controller (Segue)

Youtube视频讲解全过程https://www.youtube.com/watch?v=N7nM0S_IJ6g

步骤(在AssetLibrary Demo的那篇笔记的基础上做):
1. 在storyboard里,添加一个ViewController,再添加一个segue指向这个ViewController

2. 给刚刚添加的 segue 加上ID,“showPhoto”。

Attention:The identifier of cell should match(此处在Main.storyboard中应选中Table View 里面的cell)。

3. 新建一个 ViewController 的 Cocoa Class 名为 MyViewController。并把刚刚Storyboard里面添加的那个 ViewController 的 custom class 设置设为 MyViewController。


4. 代码
//
//  MyViewController.h
//  AssetLibraryDemo
//
//  Created by 鲁辰 on 7/6/15.
//  Copyright (c) 2015 ChenLu. All rights reserved.
//

#import <UIKit/UIKit.h>

@interface MyViewController : UIViewController

@property(nonatomic) NSInteger index;

@end

//
//  MyViewController.m
//  AssetLibraryDemo
//
//  Created by 鲁辰 on 7/6/15.
//  Copyright (c) 2015 ChenLu. All rights reserved.
//

#import "MyViewController.h"

@implementation MyViewController

- (void) viewDidLoad {
    [super viewDidLoad];
    NSLog(@"From Table Index: %d", _index);
}

@end


在 MyTableViewController.m 中添加:
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
    
    if ([[segue identifier] isEqualToString:@"showPhoto"]) {
        
        // start new view at the appropriate cell index
        NSIndexPath *selectedCellIndex = [self.tableView indexPathForSelectedRow];
        
        MyViewController *myViewController = [segue destinationViewController];
        
        myViewController.index = selectedCellIndex.row;
        
    }
}


5. 结果:在点击 TableView 的一个 Cell 之后跳转到新的页面。NSLog有输出那个 Cell 的index,如图。

没有评论:

发表评论