试图在UINavigationcontroller中访问@property属性

时间:2011-06-15 21:51:29

标签: iphone objective-c cocoa-touch uinavigationcontroller

在TableView1.h中创建了一个属性属性,并将该属性值推送到另一个视图名称TableView2。如何在另一个视图名称TableView2.m中访问Start属性属性。

在TableView1.h

  @interface TableView1 : UIViewController{
    NSString *Start;
 }

@property (nonatomic, retain) NSString *Start;

在TableView1.m

@synthesize Start;

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
TableView2 *view2 = [[[TableView2 alloc] initWithNibName:@"TableView2" bundle:[NSBundle mainBundle]] autorelease] ;
view2.Start = [ NSString stringWithFormat:@"%@", [self.Array objectAtIndex:indexPath.row]];
[appDelegate.navController pushViewController:view2 animated:YES];
[tableView deselectRowAtIndexPath:indexPath animated:YES];
}

1 个答案:

答案 0 :(得分:1)

您不应该在TableView1中定义属性Start

在TableView2.h中

@interface TableView2 : SomeViewController {
  NSString * start;
}
@property (nonatomic, retain) NSString * start;
...

在TableView2.m

@synthesize start;

在TableView1.m

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
   TableView2 *view2 = [[[TableView2 alloc] initWithNibName:@"TableView2" bundle:[NSBundle mainBundle]] autorelease] ;

   view2.start = [ NSString stringWithFormat:@"%@", [self.Array objectAtIndex:indexPath.row]];
   [appDelegate.navController pushViewController:view2 animated:YES];
   [tableView deselectRowAtIndexPath:indexPath animated:YES];
}

在TableView2.m中,只需访问self.start