컨테이너보기를 사용하는 iPad 앱을 만들고 있습니다.하위 컨테이너보기의 UILabel이 업데이트되지 않습니다.
스토리 보드를 사용하므로 2 UIViewControllers
과 1 UITableViewController
을 추가했습니다.
하나는 UIViewController
입니다. 2 개의 컨테이너 뷰를 추가하고 각각의 뷰를 UITableViewController
및 다른 UIViewController
에 임베드 세그먼트를 통해 연결했습니다.
두 컨테이너보기는 앱 시작시 표시됩니다.
배열로 tableview를 채 웠고 문자열을 다른 UIViewController
에서 didselectrowatindexpath
으로 전달하려고합니다.
문자열이 nslogging에 의해 viewcontroller에 전달 된 것을 볼 수 있지만보기 컨트롤러의 레이블은 변경되지 않습니다. 여기
은 tableviewcontroller의 didselectrowatindexpath입니다 :-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
DetailVC *detailVC = [[DetailVC alloc] init];
NSString *urlString = [siteAddresses objectAtIndex:indexPath.row];
detailVC.webAddress = urlString;
[detailVC viewWillAppear:YES];
}
을 여기에 잡 뷰 컨트롤러의 m 파일입니다
@synthesize webAddress, webview, webURL;
-(void)viewWillAppear:(BOOL)animated
{
self.webAddress = webAddress;
webURL.text = webAddress;
NSLog(@"%@",webAddress);
NSLog(@"%@", webURL.text);
[super viewWillAppear:animated];
}
모든 콘센트와 연결이 올바른지,하지만 여전히 레이블 텍스트 변경되지 않습니다.
저는 스토리 보드를 사용하여 컨테이너보기를 소스 코드를 통해 컨트롤러에 연결합니다.
도움이 매우 감사합니다.
실제로 라벨을 업데이트하지 않는다고 생각합니다. 이것이 일어날 수있는 많은 다른 가능성들이 있지만, 가장 명백한 것은'webURL'이 널 포인터라는 것입니다. –
'didSelect ...에 새 컨트롤러를 할당하는 것 같습니다.'대신 childController에 속성을 설정하면됩니다 (부모의 childViewControllerers 속성을 통해 임베디드 컨트롤러에 대한 참조를 얻을 수 있습니다). – Alladinian