Zugriff auf eine Top-Navigation-Controller aus einer Untersicht Navigation Controller
Habe ich eine meiner Ansichten und Controller einrichten, so gerne.
- Ein Tab Bar controller
- Innerhalb 1. ist ein root-view-controller
- innerhalb 2. ist eine programmatisch erstellte navigation-controller, der angezeigt wird, wie eine Untersicht in das root-view-controller.
Was ich versuche zu tun, ist auf der obersten tab-Leiste/navigation-controller, so dass ich schieben Sie einen Blick auf es.
Versuchte ich parentViewController aber alle es Taten, war, drücken Sie den Blick auf den programmierten nav-controller.
irgendwelche Vorschläge?
Ist dies, wie ich meine root-view-controller:
-(void)viewDidAppear:(BOOL)animated{
NSLog(@"ROOT APPEARED");
[super viewDidAppear:animated];
WorklistViewController *worklistController = [[WorklistViewController alloc]initWithNibName:@"WorklistView" bundle:[NSBundle mainBundle]];
UINavigationController *worklistNavController = [[UINavigationController alloc] initWithRootViewController:worklistController];
worklistNavController.navigationBar.barStyle = UIBarStyleBlackOpaque;
worklistNavController.view.frame = watchlistView.frame;
[worklistNavController.topViewController viewDidLoad];
[worklistNavController.topViewController viewWillAppear:YES];
[self.view addSubview:worklistNavController.view];
GetAlertRequestViewController *alertsController = [[GetAlertRequestViewController alloc]initWithNibName:@"AlertsView" bundle:[NSBundle mainBundle]];
UINavigationController *alertsNavController = [[UINavigationController alloc] initWithRootViewController:alertsController];
alertsNavController.navigationBar.barStyle = UIBarStyleBlackOpaque;
alertsNavController.view.frame = alertsView.frame;
[alertsNavController.topViewController viewDidLoad];
[alertsNavController.topViewController viewWillAppear:YES];
[self.view addSubview:alertsNavController.view];
}
InformationsquelleAutor der Frage Matt | 2010-06-29
Schreibe einen Kommentar Antworten abbrechen
Du musst angemeldet sein, um einen Kommentar abzugeben.
Einer verschachtelten ViewController (dh innerhalb einer Ansicht gesteuert durch einen ViewController an, die eigentlich auf der NavController stack) hat keinen direkten Zugang zu den UINavigationController, dass seine Eltern view-controller ist ein stack-Mitglied. Das ist ein SCHLUCK von einem Satz, aber der Sinn ist: du kommst nicht von hier.
Stattdessen haben Sie auf die app NavController per in-App-delegate.
Sind Sie mit Ihrem UIApplication die singleton (enthält alle Arten von guten Informationen über Ihre app), die hat eine .delegate-Eigenschaft verweist auf die AppDelegate, und enthält einen Verweis auf den NavigationController.
Dies ist, wie die "Navigation-based Application" Xcode template-sets bis NavController Eigentum, sowieso. YMMV, wenn Sie gerollt werden, Ihre eigenen-aber wenn Sie es Taten, Sie wahrscheinlich nicht brauchen, diese Frage zu stellen.
InformationsquelleAutor der Antwort Dan Ray
Können Sie die Folgen instruccion:
Funktioniert es auch bei mir 😀
InformationsquelleAutor der Antwort JERC
Haben Sie einen Blick auf UIViewController ist navigationController und tabBarController Eigenschaften. Diese wird wieder die entsprechende navigationController oder tabBarController, dass die angegebenen UIViewController 'gehört' zu.
So etwas wie:
InformationsquelleAutor der Antwort nebs