2012-12-22 5 views
0

DetailDisclosureButton이 눌러 지거나 눌려 졌을 때 표시 할 UIViewController (GUI가 스토리 보드를 사용하여 작성)를 얻으려고합니다. 나는 화면에 단 하나의 버튼으로 아주 간단한 GUI를 만들었다. 나는 Custom 클래스 NFLGameDetailsController을 주었고 스토리 보드에는 아무 것도하지 않았다. DetailDisclosureButton에 대한 UIViewController 표시

나는 다음 클래스 UIViewController에서 상속 NFLGameDetailsController라는 클래스를 만들었습니다.

#import "NFLGameDetailsController.h" 

@interface NFLGameDetailsController() 

@end 

@implementation NFLGameDetailsController 

- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil 
{ 
    self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil]; 
    if (self) { 
     // Custom initialization 
    } 
    return self; 
} 

- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 
    // Do any additional setup after loading the view. 
} 

- (void)didReceiveMemoryWarning 
{ 
    [super didReceiveMemoryWarning]; 
    // Dispose of any resources that can be recreated. 
} 

@end 

마지막으로, 내 메인 컨트롤러에 내 헤더 파일에 #import "NFLGameDetailsController.h"을 추가하고,이 같은 내의 UIViewController를 표시하는 방법을 구현 :

UIViewController 클래스에서 상속 할 때 엑스 코드에 의해 생성 된 코드입니다 :

- (void)tableView:(UITableView *)tableView accessoryButtonTappedForRowWithIndexPath:(NSIndexPath *)indexPath 
{ 
    NFLGameDetailsController *controller = [[NFLGameDetailsController alloc] init]; 
    [[self navigationController] pushViewController:controller animated:YES]; 
} 

에 불려지고 모두가 잘 보이지만, 내가 액세서리 상세 공개 버튼을 눌러 수행 할 때, 나는 검은 화면이 얻을 :

스토리 보드를 사용하여 만든 GUI가 표시되지 않는 이유는 무엇입니까? 감사.

+1

이니셜 라이저는 사용자 인터페이스가 StoryBoards를 코딩했다고 제안합니다. 프로그래밍 방식으로 시작과 설정을 오버라이드하거나'performSegueWithIdentifier : sender :' – CodaFi

+0

을 사용하십시오. 죄송 합니다만,'performSegueWithIdenitifier : sender :'로 장난하고 있습니다. 나는 혼란 스럽습니다 ... 그것을 사용할 때, 나는 그것을 호출해야합니까? 다음과 같이 :'NFLGameDetailsController * controller = [[NFLGameDetailsController alloc] init]; [자기 performSegueWithIdentifier : @ "gameDetailsSegue"보낸 사람 : 컨트롤러]; ' – hetelek

+0

당신은 alloc 및 init 아무것도 할 필요가 없습니다 (스토리 보드는 당신을 위해 그것을 않습니다) – CodaFi

답변

1

그것은`당신은 클래스가 아닌보기를 인스턴스화하기 때문에

당신이, 당신이 이런 식으로

첫째을 할 수있는 코드에서 다른보기를로드 스토리 보드에서의 ViewController에 스토리 보드 ID를 지정하려면 편집기 다음

- (void)tableView:(UITableView *)tableView accessoryButtonTappedForRowWithIndexPath:(NSIndexPath *)indexPath 
{ 
    NFLGameDetailsController *controller = (NFLGameDetailsController *)[self.storyboard instantiateViewControllerWithIdentifier:@"NFLGameDetailsController"]; 
    [[self navigationController] pushViewController:controller animated:YES]; 
} 

(예를 NFLGameDetailsController에 대한)하지만 당신은 따을 구성하는 스토리 보드 편집기를 사용할 수 있습니다 bleview 및 그 셀을 코드없이 다른보기를로드하려면