2017-01-10 92 views
0

尝试将数据从tableviewcontroller传递回视图控制器时的一个小问题。当点击每个按钮时,我在viewcontroller中有3个按钮和3个textfields将导航到静态数据(如头痛,发烧,咳嗽,寒冷)相同的桌面视图。问题来了,当我在tableview中选择一行时,数据被分配给viewcontroller中的所有文本文件。但我希望当button1被点击时,我选择发烧它应该分配给只textfiled1和button2被点击当我选择咳嗽它应该只分配给第2个文本文件。以下是我的代码。将数据传递回视图控制器的问题

In **AppDelegate.h** 

@property (strong, nonatomic) NSString *selectedText; 


In **ViewController.m** 

-(void)viewWillAppear:(BOOL)animated 
{ 
    AppDelegate *appDelegate = (AppDelegate *)[UIApplication sharedApplication].delegate; 

    txtField1.text = appDelegate.selectedText; 
    txtField2.text = appDelegate.selectedText; 
    txtField3.text = appDelegate.selectedText; 

} 


**FamilyDetailsViewController.m** 

pragma mark - Table view delegate 

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

     NSString *selected= [arr objectAtIndex:indexPath.row]; 

     AppDelegate *appDelegate = (AppDelegate *)[UIApplication sharedApplication].delegate; 

     appDelegate.selectedText = selected; 

     [self.navigationController popViewControllerAnimated:YES]; 
} 
+0

它清楚地表明您正在将selectedText分配给3个文本字段。有没有条件你分配文本 – Joshua

回答

2

在第一个视图控制器中有一个int变量,应该可以在整个视图控制器中访问它。 一次按下按钮1时,则将int变量的值设置为1.将其更改为2其他按钮为2 & 3。 现在,根据该int变量分配make条件。

if(variable == 1){ 
txtField1.text = appDelegate.selectedText; 
} 
else if(variable == 2){ 
txtField2.text = appDelegate.selectedText; 
} 
else if(variable == 3){ 
txtField3.text = appDelegate.selectedText; 
} 
+0

谢谢。这工作得很好 – Abhimanyu

相关问题