2015-05-02 79 views
-4

我有一個用戶通過文本字段在文本中輸入,然後將其顯示在單獨的ViewController中的標籤中。動態分配文本到標籤

基本上我需要發生的是

1 - 讓用戶在文字輸入

2 - 第二個ViewController中創建和文本分配給標籤

我需要給用戶輸入多個數據條目,因此需要在從用戶輸入數據時動態創建標籤。

我通過ViewControllers使用委託傳遞我的數據。

感謝您的幫助!

+0

找到您想要創建加指定文本標籤進入其他視圖控制器? –

+0

讓您的firstViewController將數據傳遞給'prepareForSegue'中的secondViewController,然後設置所需標籤的'text'屬性。 – luk2302

+0

我能夠將數據傳遞給單獨的ViewController並顯示它,但我想從同一文本字段輸入多個數據條目,併爲用戶創建它的單獨ViewController中的每個條目創建一個標籤。 –

回答

2

爲什麼不考慮NSUserDefaults?它甚至可以在會話中傳遞數據。

傳遞數據:


- (IBAction)saveLabel:(id)sender { 
    NSArray *data = [[NSUserDefaults standardUserDefaults] objectForKey:@"DATA"]; 
    NSMutableArray *currentDataArray; 
    if (data == nil) { 
     currentDataArray = [[NSMutableArray alloc]init]; 
    } else { 
     currentDataArray = [[NSMutableArray alloc]initWithArray:data]; 
    } 
    [currentDataArray addObject:self.textField.text]; 
    [[NSUserDefaults standardUserDefaults] setObject:currentDataArray forKey:@"DATA"]; 
} 

處理數據:(在另一個視圖控制器)


- (void) viewWillAppear:(BOOL)animated { 
    NSArray *dataArray = [[NSUserDefaults standardUserDefaults]objectForKey:@"DATA"]; 
    if (dataArray != nil) { 
     int count = 0; 
     for (NSString *text in dataArray) { 
      UILabel *label = [[UILabel alloc]initWithFrame:CGRectMake(0, 200 + 40 * count, self.view.frame.size.width, 40)]; 
      label.text = text; 
      [self.view addSubview:label]; 
      count++; 
     } 
    } 
} 

演示可以在https://github.com/null09264/Demo-Stack

0

ViewController1

-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender { 
// Pass duration and time of day through to dataHistory 
    if ([[segue identifier] isEqualToString:@"dataViewSegue"]) 
    { 
     dataHistory *dataHistory = [segue destinationViewController]; 
     dataHistory.duration = self.durationTextField.text; 
     dataHistory.timeOfDay = self.userChoice; 
    } 
} 

ViewController2

- (void)viewDidLoad { 
    [super viewDidLoad]; 
    // Do any additional setup after loading the view. 
    if ([durationLabel.text isEqual: @""]) 
    { 
     [durationLabel setHidden:YES]; 
     [timeOfDayLabel setHidden:YES]; 
     [editButton setHidden:YES]; 
    } 
    self.durationLabel.text = [self.duration description]; 
    self.timeOfDayLabel.text = [self.timeOfDay description]; 
}