내 iPhone 앱에는 UITableView와 다른 UIView가 있고, xib 파일에 UITableView와 다른 UIView가 포함되어있는 UIViewController가 있습니다. 두 뷰 모두 IBOutlet으로 xib 파일의 해당 뷰에 링크됩니다. 나는 내가있는 UIViewController이 같은 방법을 만들려면 jQuery과에 대한 프로그래밍 방식으로 데이터 소스를 설정하려는 경우 :의가 B를 호출하자UITableView : 프로그래밍 방식으로 데이터 소스를 설정하십시오.
- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil tableDataSource:(id)dataSource{
if ((self = [self initWithNibName:nibNameOrNil bundle:nibBundleOrNil])) {
// Custom initialization
self.inventoryTableView.dataSource = dataSource;
//[self.inventoryTableView reloadData];
}
return self;}
다음 나는 내 다른 클래스에서 다음 메소드를 구현 :
를- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView;
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section;
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath;
마지막으로 + init B를 할당하고 UIViewController를 만드는 initWithNibName:bundle:tableDataSource:
메서드에 인스턴스를 전달합니다. 모든 뷰가 시뮬레이터에 나타나지만 데이터 소스 메소드가 호출되지 않은 것처럼 보입니다. 나는 다른 컨트롤러와 비슷한 것을하고 작동하지만 UITableViewController이며 TableView는 컨트롤러의 뷰입니다. 그것은 가능성이 하위 뷰 initWithNib 다른 다른 메서드에서 데이터 원본을 설정할 필요가 있습니까?
UPDATE : 내가 그것을 해결할 수 있었다 viewDidLoad:
방법으로 데이터 소스 대입 넣어. [self initWithNibName:nibNameOrNil bundle:nibBundleOrNil]
을 호출 한 후에도 기본보기의 하위보기가 제대로 입력되어 있지 않은 것으로 보입니다.
viewDidLoad 메서드를 게시 할 수 있습니까? 당신과 같은 일을하려고하지만 viewDidLoad 메서드에서 self.table.dataSource를 설정하는 대상은 무엇입니까? 위의 코드에서 init 메소드에서 사용할 수있는 dataSource로 설정해야합니다. – RyanG