userList라는 NSMutableArray에서 채워진 데이터가있는 UITableViewController가 있습니다. 특정 사용자를 선택하면 상세 뷰로 이동하고 NavBar에서 제목을 업데이트하지만 UIView에서 UILabel을 업데이트하기 위해 데이터를 전달하지 않습니다. 테이블 뷰에서 선택한 후 상세 뷰로 데이터를 전달하는 방법은 무엇입니까?
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
[tableView deselectRowAtIndexPath:indexPath animated:NO];
//Attempt at a singleton to pass the data
DetailView *details = [[DetailView alloc] init];
details.userNameLbl = [userList objectAtIndex:indexPath.row];
DetailView *detailVC = [[DetailView alloc] initWithNibName:nil bundle:nil];
//This line doesn't pass the data
detailVC.userNameLbl.text = [userList objectAtIndex:indexPath.row];
//This line does update the title in the NavBar
detailVC.navigationItem.title = [userList objectAtIndex:indexPath.row];
[self.navigationController pushViewController:detailVC animated:YES];
[details release];
[detailVC release];
}
나는 상세 뷰에 테이블 뷰의 데이터를 넣거나, 테이블 뷰에서 데이터를 당겨 상세보기 시도를하는 것을 시도해야 하는가?
DetailView.h에는 실제로 IB에 연결되는 다음 줄이 있습니다.
IBOutlet UILabel *userNameLbl
또한,'User' 클래스가 있고 그 인스턴스를 뷰에 전달하는 것을 고려할 수 있습니다. 그런 다음 뷰는 사용자에게 특정되는 자체의 모든 부분을 초기화 할 수 있습니다. 이 'User' 클래스를 Core Data 엔터티 유형으로 만드는 것도 도움이 될 수 있습니다. – George
이렇게하면 유형에 대한 NSString 및 UILabel 불일치에 대한 경고가 발생합니다. 솔루션을 구현하고이를 방지 할 수있는 방법이 있습니까? – tarheel
userList가 NSString의 배열이라고 가정했습니다. userName 속성도 NSString 일 경우에는 불일치가 없어야합니다. –