2015-01-11 1 views
1

Storyboard를 통해 정적 UITableViewCell 내에 UIPickerView를 구성하고 있습니다. 어떤 이유로 컨트롤러를로드 할 때 UIPickerView가 나타나지 않습니다.UIPickerView가있는 정적 UITableViewController가 UIPickerView를로드하지 못합니다.

스토리 보드 : Storyboard

UIPickerView는 셀 내용보기의 자식 ... 그리고 테이블보기 "정적 세포"를 표시하도록 구성되어 있습니다. (그룹화 스타일)

UIPickerView 위임 및 데이터 소스는 스토리 보드 연결 Inspector의 콘센트로있는 UITableViewController에 연결되어 :

Connections Inspector

내가 프로그래밍 viewDidLayoutSubviews에서 표 셀에 피커보기를 추가하는 경우 콜백이면 PickerView가 나타나고 델리게이트 콜백이 발생하여 Picker를 데이터로 구성 할 수 있습니다. (titleForRow 등) 다음 TableViewController.m에서

:

// Can't figure out why - but regionPicker view can't be added in viewDidLoad, so it gets added here 
- (void) viewDidLayoutSubviews { 
    // For some reason regionPicker view gets pushed to top of view unless setting x & y to 0,0 here... 
    [self.regionPicker setFrame:CGRectMake(0, 0, 320, 162)]; 
    // Add the regionPicker view as a subview to the regionPickerCell 
    [self.regionPickerCell.contentView addSubview:self.regionPicker];  
} 

viewDidLayoutSubviews 새로운 선택이 UIPIckerView에있을 때마다 호출됩니다 때문, 피커의 적절한 초기화에 문제가 발생합니다.

@import UIKit; 

@class DetailViewController; 

@interface DetailViewController : UITableViewController<UIPickerViewDataSource, UIPickerViewDelegate> 

@property (weak, nonatomic) IBOutlet UITableViewCell *regionCell; 
@property (weak, nonatomic) IBOutlet UITableViewCell *regionPickerCell; 
@property (weak, nonatomic) IBOutlet UIPickerView *regionPicker; 

@end 

스토리 보드를 통해 정적 UITableViewContoller에 UIPickerView를로드하는 적절한 방법은 무엇입니까 :

여기 내 TableViewController.h 파일처럼 보이는 무엇인가?

또한이 관련이 있다면, 나도 몰라,하지만 테이블보기 컨트롤러,이 경우에는, 다른있는 UITableViewController에서 거랑 통해로드지고 :

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

     UINavigationController *navigationController = segue.destinationViewController; 
     // Here's the UITableViewController in question... 
     DetailViewController *detailViewController = [navigationController viewControllers][0]; 

     NSIndexPath *selectedPath = [self.tableView indexPathForCell:sender]; 
    } 
} 

을 어떤 생각이 크게 감사합니다!

+0

셀에 대해 'reuseIdentifier'를 확인 했습니까? – n00bProgrammer

+0

테이블 뷰 셀의 높이는 얼마입니까? 값을 적절하게 설정했는지 확인하십시오. –

+0

@UtkarshSingh - reuseIdentifier를 사용하고 있지 않습니다.이 셀은 정적입니다. – Sly

답변

0

엑스 코드 V6.1, SDK의 V8.1 나는 하나 하나 다시 추가 한 다음 스토리 보드에서,이 컨트롤러의 기존 피커 뷰를 삭제하고, 이것을 해결.

몇 가지 이유로 스토리 보드보기에서 피커보기가 회색으로 표시되었습니다. (위의 첫 번째 그림) 피커 뷰를 삭제하고 다시 추가 한 후 회색으로 표시되지 않았습니다. 왜 피커 뷰가 처음부터 회색으로 표시되었는지, 또는 스토리 보드에서 의미하는 것이 무엇인지 모르겠지만, 앞으로 이것이 도움이 될 수 있기를 바랍니다.

관련 문제