Navigationsproblem bei UITabbar + UIViewController + UITableViewController

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Navigationsproblem bei UITabbar + UIViewController + UITableViewController

    Hallo zusammen.

    Ich bin gerade dabei mir das Grundgerüst für ne App zu basteln.
    Ich habe eine Navigation Based Applikation genommen.

    Mein MainWindow.xib lädt mir meinen RootViewController.
    Der beinhaltet ein paar Buttons.
    Durch klick auf einen dieser Buttons wird mittels

    Quellcode

    1. tabBarController = [[TabBarController alloc] initWithNibName:@"TabBarController" bundle:nil];
    2. [self.navigationController pushViewController:tabBarController animated:YES];


    der TabBarController "gepushed".

    Der wiederum enthält ein View mit einer TabBar.

    Quellcode

    1. - (void)tabBar:(UITabBar *)tabBar didSelectItem:(UITabBarItem *)item {
    2. switch (item.tag) {
    3. case 1:
    4. if (inhaltsverzeichniss == nil) {
    5. self.inhaltsverzeichniss = [[Inhaltsverzeichniss alloc] initWithNibName:@"Inhaltsverzeichniss" bundle:nil];
    6. }
    7. [self.view insertSubview:inhaltsverzeichniss.view belowSubview:myTabBar];
    8. NSLog(@"NavController in Tab Bar View: %@",self.navigationController);
    9. break;
    10. case 2:
    11. if (tools == nil) {
    12. self.tools = [[Tools alloc] initWithNibName:@"Tools" bundle:nil];
    13. }
    14. [self.view insertSubview:tools.view belowSubview:myTabBar];
    15. NSLog(@"NavController in Tab Bar View: %@",self.navigationController);break;
    16. }
    17. }
    Alles anzeigen



    wie man sieht, wird beim ersten Tab "Inhaltsverzeichnis" geladen und beim zweiten Tab "Tools".
    Tools ist ein UIViewController, mit einem View.
    Inhaltsverzeichnis ist ein UITableViewController.

    Vom Inhaltsverzeichnis aus, möchte ich ein DetailViewController aufrufen.

    Quellcode

    1. - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
    2. {
    3. NSLog(@"aktueller NavigationController %@",self.navigationController);
    4. DetailViewController *detailViewController = [[DetailViewController alloc] initWithNibName:@"DetailViewController" bundle:nil];
    5. detailViewController.title = [[[listViewData objectAtIndex:indexPath.section] objectAtIndex:indexPath.row] objectForKey:@"name"];
    6. [self.navigationController pushViewController:detailViewController animated:YES];
    7. [detailViewController release];
    8. }
    Alles anzeigen


    nur wird hier nix mehr gepushed.
    Mit den NSLogs hab ich schonmal rausgefunden, dass ich hier keinen NavigationController mehr habe... aber wo ging der verloren :) bzw. wie kann ich hier mein DetailViewController aufrufen?
  • ok, der name "TabBarController" ist wohl unglücklich gewählt. aber ich habe ja geschrieben, dass dort nur ein View mit einer TabBar drinne is. also kein Controller.
    ich tausche die "subviews" dort auch nur aus... aber ich kann aus diesen subviews nicht mehr weiter navigieren.

    oder hab ich da was grundsätzliches falsch verstanden? ^^
  • Problem gelöst.
    Da die subviews keinen eigenen ViewController haben, muss man mittels

    Quellcode

    1. AppDelegate *del = (AppDelegate *)[UIApplication sharedApplication].delegate;
    2. [del.navigationController pushViewController:nextView animated:YES];



    einfach dem übergeordneten ViewController sagen, dass er "pushen" soll.