2013-12-08 35 views
0

我想將textfield數據傳遞到一個數組,然後將其從ViewController2傳遞給ViewController。在新的視圖控制器中,它將打印出數組中的所有元素。傳遞數組以標籤與Segue

錯誤我得到的是在ViewController2.m:對「的UITextField」無可見@interface聲明的選擇「componentsSeparatedByString:」

我已經檢查每一個連接,它們是正確的。

ViewController2.h

IBOutlet UITextField *HomePlayers; 

ViewController2.m

-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender { 
    if([segue.identifier isEqualToString:@"SaveData"]) { 
     ViewController *vc = [segue destinationViewController]; 
     NSArray *homePlayersText = [HomePlayers componentsSeparatedByString:@" "]; 
     vc.HomePlayersString = homePlayersText; 
    } 

} 

ViewController.h

@property (weak, nonatomic) IBOutlet UILabel *HomePlayersLabel; 
@property (weak, nonatomic) NSArray *HomePlayersString; 

ViewController.m

@synthesize HomePlayersString, HomePlayersLabel; 

回答

0

如果要分離標籤的組件,首先需要獲取字符串值。作爲你的榜樣。

-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender { 
if([segue.identifier isEqualToString:@"SaveData"]) { 
    ViewController *vc = [segue destinationViewController]; 
    NSString * stringValue = self.HomePlayers.text; 
    NSArray *homePlayersText = [stringValue componentsSeparatedByString:@" "]; 
    vc.HomePlayersString = homePlayersText; 
} 

}

此外,我建議你寫你的類在beggining較低的市值屬性,因爲它是蘋果公司的建議之一。大寫爲「TestClass」的類,小寫爲「randomClass」。

0

你可能想訪問UITextFieldtext屬性:

NSArray *homePlayersText = [HomePlayers.text componentsSeparatedByString:@" "]; 

其他說明:

  • 實例變量的約定是用小寫字母,例如使用的名稱開始 homePlayers
  • HomePlayersString屬性應該聲明爲強而不是弱, 正如@rdelmar所指出的那樣。否則vc.HomePlayersString將在分配值後不久nil
  • 當前編譯器版本不再需要@synthesize語句。
+1

此外,數組HomePlayersString,應該輸入強,不弱。 – rdelmar