• Wieder einmal haben uns unsere Apfeltalker tolle Fotos zur Abstimmung eingesandt. Welches ist Euer Favorit? Stimmt mit ab! Hier geht es zur Abstimmung --> Klick
  • Es ist bereits Apfeltalk-Tradition und wir möchten sie auch in diesem Jahr fortsetzen: Unser Apfeltalk-Weihnachtslogo-Wettbewerb hat begonnen! Gestaltet für uns das Weihnachtsbanner, das im Monat Dezember bis zum Weihnachtsfest unsere Webseite schmücken soll. Lasst Eurer Kreativität freien Lauf! Hier geht es zum Wettbewerb --> Klick

Navigation Controller ohne Application Delegate

TheNman

Grahams Jubiläumsapfel
Registriert
28.06.08
Beiträge
104
Hallo,

ich habe ein kleines Problem mit meiner App. Ich habe die App so verändert, dass der Navigation Controller nicht mehr in der Application Delegate deklariert wird. Wenn ich nun den Navigation Controller pushe und somit den die neue Seite angezeigt wird, wird das animated YES nicht übergeben und somit die Funktion (void)viewWillAppear:(BOOL)animated nicht ausgeführt.

Nun meine Frage: Muss ich für den Navigation Controller in einem normalen File eine eigene Delegate erstellen, damit dass wieder funktioniert?

Ich poste noch etwas Code und hoffe, dass ihr mir helfen könnt.

#import <UIKit/UIKit.h>

@class FSMBNewsViewController;
@class FSMBNewsDetailController;


@interface FSMBView : UIViewController {
IBOutlet UIWindow *window;
UINavigationController *navigationController;

}

@property (nonatomic, retain) IBOutlet UIWindow *window;
@property (nonatomic, retain) IBOutlet UINavigationController *navigationController;

-(IBAction) backView;

@end

#import "FSMBView.h"

@implementation FSMBView

@synthesize window;
@synthesize navigationController;

- (void)viewDidLoad {
[window addSubview:navigationController.view];
[super viewDidLoad];
}

....

@end
 
Aber das View wird angezeigt? Es könnte sein, dass du vergessen hast, den NavigationController eine View zuzuordnen. Nur so eine Vermutung... Diese Methode gehört nämlich zu UIViewController (Superklasse von UINavigationController). Der sollte diese 'empfangen' können, wenn seine View angezeigt werden soll.

Gruss ppocket
 
  • Like
Reaktionen: TheNman
Hey, vielen Dank ich habs aber mittlerweile schon hinbekommen ;)

Und für alle, die vielleicht auch noch drüber stolpern (secondViewController ist der gepushte View):

Code:
	self.secondViewController.view;
	[self.secondViewController viewWillAppear:YES];
	[self.navigationController pushViewController:secondViewController animated:YES];
	[tableView deselectRowAtIndexPath:indexPath animated:YES];