Wenn ich versuche, eine benutzerdefinierte UINavigationBar zu einem View-Controller ähnlicheiOS 11 benutzerdefinierte Navigationsleiste gibt zwei Bars
class ViewController: UIViewController
{
static let nav_bar_height: CGFloat = 64
let nav_bar: UINavigationBar =
{
let nav_bar = UINavigationBar()
nav_bar.translatesAutoresizingMaskIntoConstraints = false
nav_bar.backgroundColor = .blue
return nav_bar
}()
override func viewDidLoad()
{
super.viewDidLoad()
view.backgroundColor = .yellow
view.addSubview(nav_bar)
nav_bar.heightAnchor.constraint(equalToConstant: ViewController.nav_bar_height).isActive = true
nav_bar.topAnchor.constraint(equalTo: view.topAnchor).isActive = true
nav_bar.centerXAnchor.constraint(equalTo: view.centerXAnchor).isActive = true
nav_bar.widthAnchor.constraint(equalToConstant: UIScreen.main.bounds.width).isActive = true
}
}
zwei verschiedene Bars bis zeigen hinzuzufügen.
Irgendeine Idee warum es den weißen farbigen Stab mit einer kleineren Höhe gibt?
Dies ist der AppDelegate
@UIApplicationMain
class AppDelegate: UIResponder, UIApplicationDelegate {
var window: UIWindow?
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
window = UIWindow(frame: UIScreen.main.bounds)
window?.makeKeyAndVisible()
let vc = ViewController()
window?.rootViewController = vc
// Override point for customization after application launch.
return true
}...
Auch die Art und Weise, wie Sie Ihre Navigationsleiste positionieren und dimensionieren, hängt nicht davon ab, wie Sie es tun. Aber wir können damit umgehen, nachdem Sie sich mit der umgebenden Navigationssteuerungsschnittstelle fertig gemacht haben. – matt
Aber es gibt keine Navigationssteuerungsschnittstelle. 'Klasse AppDelegate: UIResponder, UIApplicationDelegate { var window: UIWindow? func Anwendung (_ Anwendung: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Alles]?) -> Bool { Fenster = UIWindow? (Rahmen: UIScreen.main.bounds) Fenster .makeKeyAndVisible() let vc = Viewcontroller() Fenster? .rootViewController = vc // Übersteuerungsstelle für die Anpassung nach dem Start der Anwendung. return true } ' –
So behaupten Sie. Aber ich wette, da sind Sachen, die du verbirgst. Ich denke, Sie haben ein Storyboard, von dem Sie nichts wissen, und ich denke, dass der anfängliche View-Controller in Ihrem Storyboard ein Navigationscontroller ist (mit einem ViewController als Root-View-Controller), und _that_ der View-Controller ist, der geladen wird . Die zweite Navigationsleiste dient nur zur Diagnose dieses Problems. – matt