2

このフレームワークVPPDropdownを使用しようとしているプロジェクトに取り組んでいますが 、storyboard.

それで、私は何をしましたか?UITableviewController画面上でをドラッグしました。次に、私のコードにはこれがあります。

- (id)initWithStyle:(UITableViewStyle)style
{
    self = [super initWithStyle:style];
    if (self) {
        // Custom initialization
        _dropDownSelection = [[VPPDropDown alloc] initSelectionWithTitle:@"Selection Combo"
                                                               tableView:self.tableView
                                                               indexPath:[NSIndexPath indexPathForRow:kRowDropDownSelection inSection:kSection1]
                                                                delegate:self
                                                           selectedIndex:1
                                                           elementTitles:@"Option 1", @"Option 2", @"Option 3", nil];

        _dropDownDisclosure = [[VPPDropDown alloc] initDisclosureWithTitle:@"Disclosure Combo"
                                                                 tableView:self.tableView
                                                                 indexPath:[NSIndexPath indexPathForRow:kRowDropDownDisclosure inSection:kSection1]
                                                                  delegate:self
                                                             elementTitles:@"Disclosure 1", @"Disclosure 2", @"Disclosure 3", @"Disclosure 4", @"Disclosure 5", nil];


        NSMutableArray *elts = [NSMutableArray array];
        for (int i = 1; i <= 4; i++) {
            // just some mock elements
            VPPDropDownElement *e = [[VPPDropDownElement alloc] initWithTitle:[NSString stringWithFormat:@"Element %d",i] andObject:[NSNumber numberWithInt:i]];
            [elts addObject:e];
        }

        _dropDownCustom = [[VPPDropDown alloc] initWithTitle:@"Custom Combo"
                                                        type:VPPDropDownTypeCustom
                                                   tableView:self.tableView
                                                   indexPath:[NSIndexPath indexPathForRow:kRowDropDownCustom inSection:kSection2]
                                                    elements:elts
                                                    delegate:self];
    }
    return self;
}

いくつかの調査の結果、 a のUITableViewController中で aを使用するとstoryboard. 上記のメソッドは呼び出されていません。そして、そのコードを内部に配置する必要があります:

-(id)initWithCoder:(NSCoder *)aDecoder {
    if ( !(self = [super initWithCoder:aDecoder]) ) return nil;

    // Your code goes here!

    return self;
}

それを行うと、次のエラーが表示されます

*** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'Could not load NIB in bundle: 'NSBundle </Users/stefgeelen/Library/Application Support/iPhone Simulator/6.1/Applications/6D0EF4BF-068C-493C-A1A5-CFAA2B935D56/claesdistribution.app> (loaded)' with name 'DR7-d0-mee-view-dDq-is-22f''

誰でもこの問題を解決できますか?

4

1 に答える 1

0

Interface Builder を使用する場合は、代わりにこのメソッドに初期化コードを配置する必要があります。

- (void)awakFromNib
{

}

注: 呼び出す [super awakFromNib] はありません。[super initWithStyle] も呼び出さないでください。

また、コントローラー内の多くの UI 要素はまだ awakFromNib で初期化されていない可能性があるため、その一部は viewDidLoad でより適切にアクセスできることに注意してください。

于 2014-01-07T04:37:43.537 に答える