2012-10-09 43 views
-1

我需要將選定tableviews行的UiLabel值傳遞給其他視圖中的標籤。如何才能做到這一點? 我嘗試這樣做:如何發送一個UIview的值的tableview到iPhone的另一個視圖?

ViewController1.h: 
UILabel *name1; 
@property(nonatomic,retain)IBOutlet UILabel *name1; 

    ViewController1.m: 
- (void) tableView:(UITableView *)tableView accessoryButtonTappedForRowWithIndexPath:(NSIndexPath *)indexPath 
{ 

ViewController2 *v2 = [[ViewController2 alloc] initWithNibName:@"ViewController2" bundle:nil]; 
v2.modalTransitionStyle = UIModalTransitionStyleFlipHorizontal; 

[self presentModalViewController:v2 animated:YES]; 
v2.provName=[name1 retain]; //name1 is the name of UILabel in TableView. 
[v2 release]; 
} 
    ViewController2.h 
UILabel *providerName; 
SString *provName; 

    ViewController2.m: 
- (void)viewDidLoad 
{ 
providerName =[[UILabel alloc] init]; 
[providerName setFrame:CGRectMake(10,10,300,50) ]; 
providerName.textAlignment=UITextAlignmentLeft; 
providerName.backgroundColor=[UIColor blackColor]; 

self.providerName.text=self.provName; 
providerName.highlightedTextColor=[UIColor whiteColor]; 
[self.view addSubview:providerName]; 
} 

,但沒有得到價值

+0

首先'的NSLog(@「南e1 =%@「,name1)' – Hemang

回答

0

如果provName是一個字符串,它指定標籤的文本的價值,而不是標籤本身。

+0

我這樣做了,但仍然沒有運氣v2.provName = [name1 text]; – Honey

+0

另外,將該作業移至呈現控制器的行之前的'provName'。 –

+0

你可以簡單地解釋一下。我無法獲得你的 – Honey

0

你應該在第二個視圖控制器更新標籤的文本:

v2.providerName.text = name1.text; 

或者更好的是,封裝在您在德第一個視圖控制器做第二視圖控制器的名稱:

v2.provName = name1.text; 

,並提供在所述第二視圖控制器一個setter:

- (void)setProvName:(NSString *)name 
{ 
    // This assumes that ARC is enable - if it isn't then you have to retain... 

    self.provName = name; 
    self.providerName.text = name; 
} 
相關問題