私はタブベースのアプリケーションを持っています。 SecondViewController
には、複数のセルを持つUITableView
があります。セルをスワイプすると、別のビューコントローラspeciesController
に送信されます。以下のコードは、別のビューにアプリケーションを送信するために動作し、ナビゲーションバーを設定しますが、戻るボタンはありません。Self.NaviationControllerを初期化する
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
SpeciesViewController* speciesController = [[SpeciesViewController alloc]initWithNibName:@"SpeciesViewController" bundle:nil];
Species *theSpecies = [fetchedResultsController objectAtIndexPath:indexPath];
speciesController.theSpecies = theSpecies;
switch (sortBySegmentedControl.selectedSegmentIndex) {
case kSortByCommonNameFirst:
speciesController.title = [theSpecies commonNameFirstLast];
break;
case kSortByCommonNameLast:
speciesController.title = [theSpecies commonNameLastFirst];
break;
case kSortByScientificName:
speciesController.title = [[NSString alloc] initWithFormat:@"%@%@",
[theSpecies.scientificName substringToIndex:1],
[[theSpecies.scientificName substringFromIndex:1] lowercaseString]];
break;
default:
break;
}
speciesController.hidesBottomBarWhenPushed = YES;
//self.navigationItem.backBarButtonItem = [[UIBarButtonItem alloc] initWithTitle:@"Back" style:UIBarButtonItemStylePlain target:nil action:nil];
//// Store current index path for viewDidAppear animation. ////
self->currentSelectedIndexPath = indexPath;
UINavigationController *navBar=[[UINavigationController alloc]initWithRootViewController:speciesController];
navBar.navigationItem.backBarButtonItem = [[UIBarButtonItem alloc] initWithTitle:@"Back" style:UIBarButtonItemStylePlain target:nil action:nil];
[self presentViewController:navBar animated:YES completion:nil];
}
私は戻るボタンを持っていることを実現する、あなたはナビゲーションコントローラのスタックに現在のビューをプッシュする必要があります。しかし、
self.navigationItem.backBarButtonItem = [[UIBarButtonItem alloc] initWithTitle:@"Back" style:UIBarButtonItemStylePlain target:nil action:nil];
[self.navigationController pushViewController:navBar animated:NO];
に
navBar.navigationItem.backBarButtonItem = [[UIBarButtonItem alloc] initWithTitle:@"Back" style:UIBarButtonItemStylePlain target:nil action:nil];
[self presentViewController:navBar animated:YES completion:nil];
を変更することはできません。実際には、アプリが別のビューに変更するには失敗した、と私はself.navigationController
私は初期化/この行と1追加しようとしましたが存在しないため、これがあると信じて:
UINavigationController *navigationController=[[UINavigationController alloc]initWithRootViewController:self];
をしかし、それはアプリケーションを引き起こしましたクラッシュする
ナビゲーションコントローラーをアプリに追加する方法については、ストーリーボードまたはプログラムでご理解いただきますようお願い申し上げます。私が見た例のほとんどは、2011年以降の方法で古くなっていたようです。self.window addSubview...
ありがとう!
ありがとう – Matt