• Das kreative Thema des Monats Oktober wird vor allem diejenigen unter Euch besonders ansprechen, denen Do-it-yourself quasi im Blut liegt. Zeigt uns Eure Improvisationskünste oder fotografiert, was andere Leute sich so im Alltag zusammengestrickt haben. --> Zum Mitmachen bitte hier klicken

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];