2014-01-23 95 views
0

我有一個使用自定義UIViewcontroller(我們將其稱爲VC-A)的故事板,其中包含兩個容器視圖控制器的根視圖。我希望VC-A在初始化期間收集一些數據,並在初始化期間將它傳遞給其中一個子vc。我猜測我不完全理解這個工作的正確流程,因爲這似乎不可能。我可以設置值並運行其他操作,覆蓋initWithCoder方法並將VC-A設置爲其他子VC的委託(我可以將VC-A設置爲子VC的委託,並且子VC可以查詢VC-A的數據但是這隻能在子vc初始化後發生)。有沒有辦法做到這一點?或者更可能在哪裏錯過了正確的信息流?謝謝閱讀!使用故事板中容器視圖控制器的數據初始化視圖控制器

在VC-A

-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender { 
if ([segue.identifier isEqualToString:@"collectionEmbed"]) { 

} 
if ([segue.identifier isEqualToString:@"tableEmbed"]) { 
    ImageTableViewController *utvC = (ImageTableViewController *)segue.destinationViewController; 
    [utvC setUnitArray:[self vendUnitList]]; 
//A check on the debugger here shows that [[self vendUnitList] count] returns 5 
} 
} 

在VC-B(TableViewController的子類

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section 
{ 
// Return the number of rows in the section. 
NSLog(@"%u",self.unitArray.count); 
//Debugger shows this to be 0 
return self.unitArray.count; 
} 
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
static NSString *CellIdentifier = @"Cell"; 
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier forIndexPath:indexPath]; 

// Configure the cell... 
UnitVO *unitVO = (UnitVO *)[unitArray objectAtIndex:indexPath.row]; 
NSLog(@"Unit Name: %@",unitVO.unit_name); 
cell.textLabel.text = unitVO.unit_name; 
return cell; 
} 

一些洛

- (void)viewDidLoad 
{ 
[super viewDidLoad]; 
if(self.tableView.delegate == self && self.tableView.dataSource == self) 
{ 
    NSLog(@"Yep"); 
}else{ 
    NSLog(@"Nope"); 
} 
// Get Yep for output 
} 

故事板在這裏可以看到:1

回答

1

爲什麼不在VC-A中使用此值來設置VC-B中的值

-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender { 
    [segue.destinationViewController setSomeValue:_someValue]; 
} 

希望我正確理解了這個問題。

+0

感謝您的迴應,我認爲您瞭解bc這個問題,這正是我想要做的!雖然我可能錯過了細節。具體來說,我正在使用VC-A向VC-B提供數據(B是一個vc-a獲取數據的tableviewcontroller)。據我瞭解,當框架進入prepareForSegue階段時,子控制器已經實例化了,所以當我設置了SomeValue時,控制器已經佈置了視圖並且已經初始化了。我試圖在VC-B初始化階段設置這個數據 –

+0

@CollinWhite你測試過使用prepareForSegue設置數據嗎?我已經創建了幾個原型應用程序,它將爲該方法中的UITableView設置數據,並且該表在載入時始終使用數據填充。 – sbarow

+0

我用更多的代碼更新了我的帖子,也許這會揭示我要去哪裏錯了,謝謝你的幫助! –

相關問題