2017-06-19 45 views
-1

我想從一個UIViewController傳遞數組到其他viewcontroller。 我嘗試使用屬性(viewcontroller1.array)。 我試過通知(發佈通知和添加觀察者)。 我試過NSUserDefaults 所有的都返回一個空數組。從一個UIViewController傳遞數組到其他ViewController返回null

+4

添加您嘗試代碼。 –

+0

[視圖控制器之間傳遞數據]的可能的複製(https://stackoverflow.com/questions/5210535/passing-data-between-view-controllers) –

回答

1
中的ViewController 1

從陣列是通過

@interface demopreseViewController() { 
    NSArray* nameArr; 
} 
- (void)viewDidLoad { 
    [super viewDidLoad]; 
    nameArr = [NSArray arrayWithObjects: @"Jill Valentine", @"Peter Griffin",nil]; 
    NSLog(@"%@",nameArr); 

} 

- (IBAction)PresentAction:(id)sender { 
    ViewController2 *aviewcontroller = [self.storyboard instantiateViewControllerWithIdentifier:@"aa"]; 
    aviewcontroller.array1 = nameArr; 
    [self presentViewController:aviewcontroller animated:YES completion:nil]; 
} 

在的viewController 2其中陣列是

@property (strong, nonatomic) NSArray *array1; 

下ViewController2.m

傳遞

ViewController2.h下

- (void)viewDidLoad { 
    [super viewDidLoad]; 
    NSLog(@"parsed%@",_array1); 
} 

陣列數據將被傳遞

+0

.I嘗試執行上述類型的步驟已經但仍空數組的IAM獲得。是強制給這樣的「ViewController2 * aviewcontroller = [self.storyboard instantiateViewControllerWithIdentifier:@」aa「];」。 ?當我給上面的行iam得到無法識別的選擇器發送到實例錯誤。當然,我已經給我的故事板指定的名稱標識符。我有許多故事板文件在項目中?如果我給self.storyboard,它會有所作爲嗎? – sampath

+0

您是否嘗試使用故事板的標識符像下面 UIStoryboard *故事板= [UIStoryboard storyboardWithName:@ 「MainStoryboard」 束:無]; –

+0

@sampath,'viewConrtoller2'是視圖控制器類的名稱,所以你需要給你的。 – vaibhav

0

定義屬性爲您的陣列

@Property(nonatomic, retain) NSArray *arrayName; 

其次

ViewControllerClassName *controller = [self.storyboard instantiateViewControllerWithIdentifier:@"StoryboardIdentifier"]; 
controller.array = arrayName; 
相關問題