2013-02-19 73 views
-1

虽然使用DetailViewController值不是从UITabelViewController传递,是否有任何错误的代码?detailview控制器值没有显示

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { 

detailedvu *dvController = [[detailedvu alloc] initWithNibName:@"detailedvu" bundle:[NSBundle mainBundle]]; 
if (0 == indexPath.row) 
{ 
    NSLog(@"0"); 
    dvController.lb1.text = @"Make"; 
} 
[self.navigationController pushViewController:dvController animated:YES]; 
} 

请帮我整理一下。

+0

您的代码对发生的事情不是非常具有描述性。 顺便说一句,你应该用大写命名的类:) – RubenVot 2013-02-19 14:14:52

+0

post dvController.h – 2013-02-19 14:15:35

回答

2

dvcontroller被实例化correctly.The这里的问题是,lbl是从笔尖的标签(我认为)。所以,当推到创建一个新的实例,这样的设置在这里没有任何意义的视图 - 控制。

通过它在数据所有者如的NSString和加载在detailedvu

一个建议的viewdidLoad标签:请尽量遵循的命名约定更好的可读性

编码快乐:)

2

您可以使用此功能来实现此功能。

创建detailedvu.h文件中的字符串变量属性:

@property (strong, nonatomic) NSString * str; 

而且在detailedvu.m文件补充一点:

@synthesize str; 

- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 

    if (str.length!=0) { 
     NSLog(@"hi%@",str); 
     lb1.text=str; 
    } 
} 

而且在把这个代码的表VC .m文件:

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { 

detailedvu *dvController = [[detailedvu alloc] initWithNibName:@"detailedvu" bundle:[NSBundle mainBundle]]; 
if (0 == indexPath.row) 
{ 
    NSLog(@"0"); 
    dvController.str = @"Make"; 
} 
[self.navigationController pushViewController:dvController animated:YES]; 
}