1

私のアプリケーションは、を使用しないビューから開始し、ECSlidingViewControllerそれを使用する別のビューへのボタンがあります。

を使用してビューを切り替えると、Storyboard Segueエラーが発生します。

正しくbtnGoSecondViewロードするには何を追加する必要がありますか?ECSlidingViewController


コード:

-(IBAction)btnGoSecondView:(id)sender {
    [self performSegueWithIdentifier:@"SecondViewShow" sender:self];
}

ここに画像の説明を入力してください


エラー:

 *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '*** -[__NSArrayM insertObject:atIndex:]: object cannot be nil'
4

2 に答える 2

0

取得しているエラーに基づいて、オブジェクトは可変配列に挿入しようとしていますが、初期化されていません。コード内でスローされた例外はどこですか?

配列がアクセスされている場所と、それが null である理由を調べてみてください。NSMutableArray は初期化されていない可能性があり、その場合は初期化する必要があります。

NSMutableArray *arrayName = [NSMutableArray new];

別の考え: ECSlidingViewController が提示される前に、それを topViewController に設定する必要があると思います。-prepareForSegue:sender: または表示される viewController の viewDidLoad に追加できます。

おそらくこのようなもの:

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {

     ECSlidingViewController *slidingViewController = (ECSlidingViewController *)segue.destinationViewController;
     slidingViewController.topViewController = [self.storyboard instantiateViewControllerWithIdentifier:@"FirstTop"];
}
于 2013-02-26T05:07:42.837 に答える
0

最初にinitialviewを作成し、そのビューを初期View Controllerにして、各View Controllerごとに識別子を作成する必要があると思います。

このようなもの ..

self.viewcontroller = [ストーリーボードinstantiateViewControllerWithIdentifier:@"home"];

于 2013-02-26T04:58:07.043 に答える