custom - set navigation bar swift
El botón y el título de la barra de navegación de Swift no aparecen (4)
Me gustaría crear una barra de navegación en la parte superior de mi aplicación. Creé un controlador de navegación -> Controlador de barra de pestañas -> Controlador de navegación -> Controlador de tabla
- Arrastre un elemento de botón de barra en el lado superior derecho.
- Hice doble clic en el título en el centro del controlador de tabla y escribí un texto.
También lo probé con este código en el viewDidLoad () de mi controlador:
self.navigationController.navigationBar.topItem.title = "some title" self.navigationItem.setRightBarButtonItem(UIBarButtonItem(barButtonSystemItem: .Search, target: self, action: "barButtonItemClicked:"), animated: true) self.navigationItem.title = "YourTitle"
No funcionó, ¿qué estoy haciendo mal? : /
Creo que estás buscando un titleView
.
Tratar:
var navBarTitleView = UIView(frame: CGRectMake(0.0, 0.0, self.view.frame.width, 44.0))
navBarTitleView.backgroundColor = UIColor.brownColor()
self.navigationItem.titleView = navBarTitleView
Estoy bastante seguro de que solo puede configurar el título de su controlador de mesa, en su viewDidLoad, que es el título que se muestra en la barra de navegación.
Esta respuesta explica una pregunta ligeramente diferente, pero el concepto es el mismo:
https://.com/a/25167491/2070902
Puedes probar algo como esto:
self.title = "Your Title"
var homeButton : UIBarButtonItem = UIBarButtonItem(title: "LeftButtonTitle", style: UIBarButtonItemStyle.Plain, target: self, action: "")
var logButton : UIBarButtonItem = UIBarButtonItem(title: "RigthButtonTitle", style: UIBarButtonItemStyle.Plain, target: self, action: "")
self.navigationItem.leftBarButtonItem = homeButton
self.navigationItem.rightBarButtonItem = logButton
Si desea configurar su "Barra de navegación de UIN" de acuerdo con su deseo. Por favor, siga esto de manera segura, es muy simple en un lenguaje rápido, espero que le ayude mucho.
PASO 1:-
Cree una clase de categoría en swift, simplemente vaya a "Nuevo archivo" y agregue "Clase swift simple" y le asigne el nombre "MyCustomNavBarCategory.swift"
PASO 2:-
Simplemente "Limpie la clase (elimine todo el código de esta clase)" y "Pegue mi código de abajo" : -
// La clase comenzará desde abajo.
deje que SCREEN_HEIGHT = UIScreen.mainScreen (). lines.size.height
importar UIKit
extensión UINavigationBar {
//First increase navigation bar height .
override public func sizeThatFits(size: CGSize) -> CGSize {
NSLog("%f", SCREEN_HEIGHT*0.06);
let newSize:CGSize = CGSizeMake(self.frame.size.width, SCREEN_HEIGHT*0.10)
return newSize;
}
//then set layOut of your Custom Nav for several objects like titleview,buttons and all
public override func layoutSubviews() {
for var view in self.subviews
{
NSLog("view %@", view);
let str :String = view.classForCoder.description();
if(str == "UILabel")
{
//play with title view frame
var f = view.frame;
f.origin.y = self.frame.size.height/2 - view.bounds.size.height/2 ;
view.frame = f;
view.backgroundColor = UIColor.greenColor();
}
else if(str == "UIButton")
{
//play with buttons of navigation bar view frame
var f = view.frame;
f.origin.y = (self.frame.size.height/2) - (view.bounds.size.height/2) ;
view.frame = f;
view.backgroundColor = UIColor.greenColor();
}
}
}
}
// la clase terminará en el código de copia de parada anterior en la línea anterior y justo después de esto en "MyCustomNavBarCategory.swift" . eso es todo disfrutar;).
PASO 3: - Ahora puede establecer cualquier marco en cualquier objeto de UINavigationBar en esta clase "Es una categoría muy poderosa de UINavigationBar si la implementa con cuidado" .