Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/jsf/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Swift 快捷导航栏按钮和标题don';不出现_Swift_Uinavigationbar_Xcode6 Beta5 - Fatal编程技术网

Swift 快捷导航栏按钮和标题don';不出现

Swift 快捷导航栏按钮和标题don';不出现,swift,uinavigationbar,xcode6-beta5,Swift,Uinavigationbar,Xcode6 Beta5,我想在我的应用程序顶部创建一个导航栏。我创建了一个导航控制器->选项卡栏控制器->导航控制器->表格控制器 我在右上方拖动了一个条形按钮项 我双击表控制器中间的标题并写了一个文本。 我还在控制器的viewDidLoad()中使用以下代码进行了尝试: self.navigationController.navigationBar.topItem.title = "some title" self.navigationItem.setRightBarButtonItem(UIBarButtonIte

我想在我的应用程序顶部创建一个导航栏。我创建了一个导航控制器->选项卡栏控制器->导航控制器->表格控制器

  • 我在右上方拖动了一个条形按钮项
  • 我双击表控制器中间的标题并写了一个文本。
  • 我还在控制器的viewDidLoad()中使用以下代码进行了尝试:

    self.navigationController.navigationBar.topItem.title = "some title"
    self.navigationItem.setRightBarButtonItem(UIBarButtonItem(barButtonSystemItem: .Search, target: self, action: "barButtonItemClicked:"), animated: true)
    self.navigationItem.title = "YourTitle"
    

  • 没有一个成功-我做错了什么/

    我非常确定,您可以在其viewDidLoad中设置表控制器的标题,该标题显示在导航栏中

    这个答案解释了一个稍微不同的问题,但概念是相同的:


    我相信您正在寻找
    标题视图

    尝试:


    您可以尝试以下方法:

    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
    

    如果你想根据自己的意愿设置你的“UINavigationBar”,请非常安全地遵循这一点,因为它在swift语言中非常简单,希望它能帮助你很多

    第1步:-

    在swift中创建一个category类只需继续“新建文件”并添加“简单swift类”,并命名为“MyCustomNavBarCategory.swift”

    第2步:-

    只需“清理类(删除该类中的所有代码)”“将我的给定代码粘贴到下面”:-

    //类将从下面的行开始从这里开始复制

    让SCREEN_HEIGHT=UIScreen.mainScreen().bounds.size.HEIGHT

    导入UIKit

    扩展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();
            }
        }
    }
    
    }

    //课程将在上面结束停止在上面一行复制代码,并将代码复制到您的“MyCustomNavBarCategory.swift”。就是这样

    第3步:-
    现在,您可以在此类中将任何帧设置为UINavigationBar的任何对象“如果您仔细实现它,这是UINavigationBar非常强大的类别”

    如何设置图标而不是文本?我找到了方法:)-->var homeBytton:uibarbuttoneim=uibarbuttoneim(图像:,样式:,目标:,操作:)记住,您可以省去
    uibarbuttoneimstyle
    而只使用类似
    .Plain
    。。。您还应该使用
    let
    而不是
    var
    。您找到解决方案了吗?
    //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();
            }
        }
    }