我正努力將變量從一個類傳遞到另一個類。我已經做了一些閱讀,Segue方法似乎對我來說最合適,但我無法讓它工作。一點幫助將不勝感激。Xcode - Segue - 將變量從Cell類傳遞給TableViewController類
我有一個UITableView
(TableViewController1
),其中包含一個單元格(Cell1
),其中包含一個標籤(ReferenceLabel 1
)。 Table 1
從數組中填充;每個單元格包含一個參考號碼(包含在ReferenceLabelLabel 1
之內)。所選單元格的參考號碼需要傳遞到TableViewController2
。
我到目前爲止有:
TableViewController1.h
#import <UIKit/UIKit.h>
#define kGETUrl @"http://localhost/RC.php"
@interface TableViewController : UITableViewController {
NSMutableArray *json;
}
@end
TableViewController1.m
#import "TableViewController1.h"
#import "TableViewController2.h"
#import "TableViewCell1.h"
@interface TableViewController1()
@end
@implementation TableViewController1
- (id)initWithStyle:(UITableViewStyle)style {
self = [super initWithStyle:style];
if (self) {
}
return self;
}
- (void) getData:(NSData *) data {
json = [NSJSONSerialization JSONObjectWithData:data options:kNilOptions error:nil];
[self.tableView reloadData];
}
- (void) start {
NSURL *url = [NSURL URLWithString:kGETUrl];
NSData *data = [NSData dataWithContentsOfURL:url];
[self getData:data];
}
#pragma mark - View Lifecycle
- (void)viewDidLoad {
[super viewDidLoad];
[self start];
}
- (void)didReceiveMemoryWarning {
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}
#pragma mark - Table view data source
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {
return 1;
}
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
// Return the number of rows in the section.
return [json count];
}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
static NSString *CellIdentifier = @"TableViewCell1";
TableViewCell1 *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier forIndexPath:indexPath];
if (cell == nil) {
cell = [[TableViewCell1 alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:CellIdentifier];
}
NSDictionary *info = [json objectAtIndex:indexPath.row];
cell.ReferenceLabel1.text = [info objectForKey:@"id"];
return cell;
}
//I'm stuck with the following... any help appreciate... i cant figure how to send the selected row's ReferenceLabel.text value
-(void)TableViewController1:(UITableView *)TableViewController1 didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
[self performSegueWithIdentifier:@"TVC1RefNumberTVC2" sender:self];
}
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
if ([[segue identifier] isEqualToString:@"TVC1RefNumberTVC2"])
{
NSIndexPath *ip = [self.tableView indexPathForSelectedRow];
DetailObject *detail = [self detailForIndexPath:path];
[segue.destinationViewController setDetail:detail];
}
}
@end
至於TableViewController2
,我猜我只需要爲變量創建我的屬性m從TableViewController1
發送?