• Apfeltalk ändert einen Teil seiner Allgemeinen Geschäftsbedingungen (AGB), das Löschen von Useraccounts betreffend.
    Näheres könnt Ihr hier nachlesen: AGB-Änderung
  • Die Bildungsoffensive hier im Forum geht weiter! Jetzt sollen Kreativität und technische Möglichkeiten einen neue Dimension erreichen. Das Thema in diesem Monat lautet - Verkehrte Welt - Hier geht es lang --> 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];