2012-10-16 3 views
0

이 작업을 수행하고 있는지 확실하지 않지만이 작업을 수행하려고합니다. 프로그래밍 방식으로 채워지는 테이블보기가 포함 된 스토리 보드가 있는데 모두 작동합니다. 스토리 보드 내에 또 다른 ViewController가 있습니다.이 뷰 컨트롤러는 본질적으로 테이블 뷰에서 선택된 항목의 세부 정보를 표시합니다. 스토리 보드의 테이블보기와 상세보기 사이에 뚜렷한 구분이 없습니다. - 그리고이 상세 뷰를 처리 할 클래스를 만들었습니다.스토리 보드 & 'NSInternalInconsistencyException', 이유 : '번들로 NIB를로드 할 수 없습니다.'NSBundle

그래서 난 내 detailViewController.h

#import <UIKit/UIKit.h> 

@class Profile; 

@interface MedStaffDetailViewController : UIViewController 

@property (weak, nonatomic) IBOutlet UIImageView *profileImage; 

@property (weak, nonatomic) IBOutlet UIBarButtonItem *profileMobile; 

@property (weak, nonatomic) IBOutlet UIBarButtonItem *profilePhone; 

@property (weak, nonatomic) IBOutlet UIBarButtonItem *profileEmail; 

- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil detail:(Profile *)profile title:(NSString *)title; 


@end 

이있다 그리고 이것은 구현의 :

#import "MedStaffDetailViewController.h" 
#import "MedStaffViewController.h" 
#import "Profile.h" 

@interface MedStaffDetailViewController() 

@end 

@implementation MedStaffDetailViewController 
@synthesize profileEmail, profileImage, profileMobile, profilePhone; 

- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil detail:(Profile *)profile title:(NSString *)title 
{ 
    self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil]; 
    if (self) { 
     // Custom initialization 
     self.title = title; 

    } 
    return self; 
} 
@end 

간단히 말해서 나는 당신이 보여 테이블보기에서 행의 선택을 처리 할 자세히보기 - 적절한 데이터 - 마스터/뷰 유형 응용 프로그램을 수행 할 때이 작업을 수행했지만 지금은 스토리 보드를 사용하여 배울 수 있습니다. 나는 상세 뷰의 신원 관리자에서 MedStaffDetailViewController에 클래스를 설정 한하고, 테이블 뷰 컨트롤러에 다음 한

:

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
    // Navigation logic may go here. Create and push another view controller. 
    /* 
    <#DetailViewController#> *detailViewController = [[<#DetailViewController#> alloc] initWithNibName:@"<#Nib name#>" bundle:nil]; 
    // ... 
    // Pass the selected object to the new view controller. 
    [self.navigationController pushViewController:detailViewController animated:YES]; 
    */ 

    _showProfile = [_profileArray objectAtIndex:indexPath.row]; 
    NSLog(@"Selected: %@", [_showProfile lastName]); 

    self.detailViewController = [[MedStaffDetailViewController alloc] initWithNibName:@"MedStaffDetailViewController" bundle:nil detail:_showProfile title:@"This is the title"]; 

    [self.navigationController pushViewController:self.detailViewController animated:YES]; 


} 

이 모든 좋은 빌드 만의 제목에 오류가 발생합니다 이 질문은 언제 달렸다. 스토리 보드에 seque를 만들어야합니까? 아니면해야합니까? 행을 선택하면이 세부 정보 뷰를 표시하는 방법은 무엇입니까?

답변

2

당신은 사용할 수 있습니다

UIStoryboard* sb = [UIStoryboard storyboardWithName:@"mystoryboard" bundle:nil]; 
UIViewController* vc = [sb instantiateViewControllerWithIdentifier:@"MedStaffDetailViewController"]; 
+0

UIStoryboard * SB = self.storyboard'말을 더 잘 될 것이다 ' –

+0

하지만이 [[MedStaffDetailViewController의 ALLOC를 호출 할 경우] initWithNibName 등 등 등 ]; 이는 뷰에 필요한 데이터를 제공하는 것입니다. – CodeMoto

+0

대답은 매우 분명합니다! – juan

관련 문제