Ich habe eine iPhone-App mit zwei Begrüßungsbildschirmen erstellt. Anschließend wird der Benutzer zur ersten Ansicht weitergeleitet. Ich habe einen UINavigationController hinzugefügt. Es funktioniert einwandfrei.
Wie entferne ich die Navigationsleiste nur für die Eröffnungsansicht?
Hauptfenster
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
self.splashScreen = [[SplashScreen alloc]
initWithNibName:@"SplashScreen"
bundle:nil];
if (self.pageController == nil) {
openingpage *page=[[openingpage alloc]initWithNibName:@"openingpage" bundle:[NSBundle mainBundle]];
self.pageController = page;
[page release];
}
[self.navigationController pushViewController:self.pageController animated:YES];
[window addSubview:splashScreen.view];
[splashScreen displayScreen];
[self.window makeKeyAndVisible];
return YES;
}
quelle
[self.navigationController setNavigationBarHidden:NO];
in viewWillDisappear zum Beispiel :)- (void)setNavigationBarHidden:(BOOL)hidden animated:(BOOL)animated
Methode, mit der die Navigationsleiste mit der Animation der Ansicht angezeigt / ausgeblendet wird. Diese Antwort führte mich dazu. Vielen Dank.Swift 4:
override func viewWillAppear(_ animated: Bool) { super.viewWillAppear(true) navigationController?.setNavigationBarHidden(true, animated: true) } override func viewWillDisappear(_ animated: Bool) { super.viewWillDisappear(true) navigationController?.setNavigationBarHidden(false, animated: false) }
quelle
Das funktioniert bei mir:
Swift 4
override func viewWillAppear(_ animated: Bool) { super.viewWillAppear(animated) navigationController?.setNavigationBarHidden(true, animated: false) } //reappears navigation bar on next page override func viewWillDisappear(_ animated: Bool) { super.viewWillDisappear(animated) navigationController?.setNavigationBarHidden(false, animated: true) }
quelle
Verwenden Sie den Code unter einer Zeile, um die Navigationsleiste in Swift3 und Swift4 auszublenden
navigationController?.setNavigationBarHidden(true, animated: true)
Navigationsleiste anzeigen
navigationController?.setNavigationBarHidden(false, animated: true)
quelle
Es ist besser, sich daran zu erinnern, ob es zuvor versteckt war:
private var navigationBarWasHidden = false override func viewWillAppear(_ animated: Bool) { super.viewWillAppear(animated) // Save if it was hidden initially self.navigationBarWasHidden = self.navigationController?.isNavigationBarHidden ?? false // Hide the Navigation Bar self.navigationController?.setNavigationBarHidden(true, animated: animated) } override func viewWillDisappear(_ animated: Bool) { super.viewWillDisappear(animated) // Show the Navigation Bar self.navigationController?.setNavigationBarHidden(self.navigationBarWasHidden, animated: animated) }
quelle
In c # oder Xamarin.IOS ist this.NavigationController.NavigationBar.Hidden = true;
quelle
Präsentieren Sie die Eröffnungsansicht modal oder;
Ein Beispiel aus diesem Thread: Wie kann ich auf einem iPhone einen Begrüßungsbildschirm länger anzeigen?
-(void)applicationDidFinishLaunching:(UIApplication *)application { [window addSubview:splashView]; [NSThread detachNewThreadSelector:@selector(getInitialData:) toTarget:self withObject:nil]; } -(void)getInitialData:(id)obj { [NSThread sleepForTimeInterval:3.0]; // simulate waiting for server response [splashView removeFromSuperview]; [window addSubview:tabBarController.view]; }
quelle