1

IBAction で ECSlidingViewController に到達しようとしました。ただし、以下のコードを試したとき:

-(IBAction)openNewPage:(id)sender{ //IV

UIStoryboard *storyboard;
ECSlidingViewController *slidingViewController = (ECSlidingViewController *)[storyboard instantiateViewControllerWithIdentifier:@"IV"];
if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPhone) {
    storyboard = [UIStoryboard storyboardWithName:@"iPhone" bundle:nil];
} else if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) {
    storyboard = [UIStoryboard storyboardWithName:@"iPad" bundle:nil];
}

slidingViewController.topViewController = [storyboard instantiateViewControllerWithIdentifier:@"FirstTop"];

}

次のエラーが表示されます。

 'NSInvalidArgumentException', reason: '*** -[__NSArrayM insertObject:atIndex:]: object cannot be nil'

ボタンでモーダル アクションを試してみました。「touchupinside」は InitialViewController に着陸します。これに関する提案はありますか?

4

1 に答える 1

1

ストーリーボードが現在行っている場所では nil になるため、slideViewController を定義する行を if-else-if 句の下に移動する必要があります。

UIStoryboard *storyboard;
if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPhone) {
    storyboard = [UIStoryboard storyboardWithName:@"iPhone" bundle:nil];
} else if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) {
    storyboard = [UIStoryboard storyboardWithName:@"iPad" bundle:nil];
}
ECSlidingViewController *slidingViewController = (ECSlidingViewController *)[storyboard instantiateViewControllerWithIdentifier:@"IV"];
slidingViewController.topViewController = [storyboard instantiateViewControllerWithIdentifier:@"FirstTop"];
于 2013-04-01T17:31:10.737 に答える