UIViewController viewWillAppear & Co. werden nicht aufgerufen - View aber angezeigt

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

Aufgrund der Corona-Krise: Die Veröffentlichung von Stellenangeboten und -gesuchen ist bis 31.12.2020 kostenfrei. Das beinhaltet auch Angebote und Gesuche von und für Freischaffende und Selbstständige.

  • UIViewController viewWillAppear & Co. werden nicht aufgerufen - View aber angezeigt

    Moin,

    das hatte ich in den letzten Jahren noch nie:

    Also im AppDelegate:

    erzeuge ein UINavigationController der als RootViewController den ViewController bekommt.
    Der NavigtionController wird noch nett in ein TabController gepackt. Das selbe Schema wird noch mit 3 weiteren ViewController gemacht.

    Wenn das App startet (Simulator) werden die "View"-MethodenGeschwister viewWillAppear, viewDi.... u.s.w. nicht aufgerufen. Aber das View wird angezeigt.

    Ich habe schon die ganzen Viewerzeugersachen zum Test in die DelegateMethode "applicationDidBecomeActive" gestopft-> bringt leider nischt.

    zum mitschreiben:

    ExposeListViewController *lV = [[ExposeListViewController alloc] init];

    UINavigationController *n1 = [[UINavigationController alloc] initWithRootViewController:lV];
    ...

    NSArray *tabs = ([self isGermanSet]==YES) ? [NSArray arrayWithObjects:n1, n2, n3, n4, n5, nil] : [NSArray arrayWithObjects:n1, n2, n4, n5, nil];

    self.tabBarController = [[UITabBarController alloc] init];
    [self.tabBarController setViewControllers:tabs];
    [self.tabBarController setDelegate:self];

    [self.window setRootViewController:self.tabBarController];
    ....
    mehr ist da eigentlich nichts.....
  • ich glaube aber auch nciht das es daran liegt:

    ich habe initWithNibName nachträglich hinzugefügt (weil der ja die Methoden nicht aufgerufen hat). Eine Nib gibt es hier nicht und wird es auch niemals.....


    - (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil{
    self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
    if (self) {
    }
    return self;
    }

    - (id)init{
    self = [super initWithNibName:nil bundle:nil];
    if (self) {
    ....
    }
    return self;
    }
  • Also wenn ich den ganzen Stuff aus -(id)init in die -(id)initWithNibName verfrachte und im AppDelegate nun den Controller über initWithNibName:nil bundle:nil aufrufe bringt das auch nüscht.

    Es liegt definitiv an diesem ViewController tausche ich den im AppDelegate durch ein andern aus ist alles wie es soll. Naja ich glaube ich muss den Controller neu Aufsetzen
  • Kismet schrieb:

    Also wenn ich den ganzen Stuff aus -(id)init in die -(id)initWithNibName verfrachte und im AppDelegate nun den Controller über initWithNibName:nil bundle:nil aufrufe bringt das auch nüscht.

    Was soll das auch damit zu tun haben.

    Im Prinzip gibt's für Dein Problem nur zwei Möglichkeiten: Die Methodensignatur ist falsch oder der Viewcontroller hat nicht die Klasse, die Du vermutest.

    Init-Methoden zu überschreiben bringt da gar nix.
    „Meine Komplikation hatte eine Komplikation.“
  • Oki leuchtet mir ein....

    ich habe mir ein ViewController (File->New bla bla) zur Hand genommen und dort die viewWillAppear & Co Methoden implementiert (standen noch nicht drin). Ich setzt das Teil neu auf..

    Der ViewController muss irgendwie "korrup" gewesem sein. Ein neuer leere ViewController mit manuell implementierten viewWillAppoear...Methoden funktioniert.

    Ich schliesse mal das Thema da es sich auch nicht reproduzieren lässt.

    Danke...