我試圖通過prepareWithSegue一個數組,但我得到空當我啓動應用程序傳遞一個數組prepareforsegue
這是代碼:
-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
if ([segue.destinationViewController isEqual:@"table"]) {
PersonsViewController *person= [[PersonsViewController alloc]init];
[person setAnArray:anArray];
person = segue.destinationViewController;
}
}
,這是setAnArray方法:
-(void)setAnArray:(NSMutableArray *)anArray
{
array = [[NSMutableArray alloc]initWithArray:anArray];
if (array != nil) {
NSLog(@"array is copied !!");
}
}
數據應該從viewController(嵌入UINavigation控制器)傳遞給PersonViewController(這是tableview),沒有任何東西顯示在表上,所以我NSLogged的數組數並發現它爲零,所以我做了一些與此代碼進一步檢查:
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
#warning Incomplete method implementation.
// Return the number of rows in the section.
if (array == nil) {
NSLog(@"array is null");
}
else
{
NSLog(@"array count is %lu",(unsigned long)[array count]);
return [array count];
}
和我得到數組爲空消息。
請幫我解決這個
這一行的人= segue.destinationViewController是在寫你分配一些生產線的達人。是segue.destinationViewController PersonsViewController? –
@andrewlattis這絕對是。接得好。是的,你不要在'prepareForSegue'中實例化('alloc' /'init')目標視圖控制器。它已經爲你實例化了。安德魯,如果你張貼這個答案,我會投票! – Rob