草庐IT

ios - 如何以编程方式将 UIBarButtonItem 添加到拖到 View 上的 UINavigationBar

coder 2023-09-10 原文

我已经搜索并查看了针对此问题的多种解决方案,但似乎没有任何适合我的方法。这是我的代码和屏幕截图。如果有什么不同,我手动将导航栏拖到 View 上并连接了一个 socket 。谢谢。我很感激这方面的任何帮助。

class SubjectsViewController: UIViewController {

    @IBOutlet var myTableView: UITableView!

    @IBOutlet var noBooksLabel: UILabel!

    @IBOutlet var navigationBarTitle: UINavigationBar!

    func backAction() -> Void {

        self.navigationController?.popViewControllerAnimated(true)

    }

    override func viewWillAppear(animated: Bool) {

        self.noBooksLabel.hidden = true

    }

    override func viewDidLoad() {
        super.viewDidLoad()

        descriptions.removeAll(keepCapacity: true)
        usernames.removeAll(keepCapacity: true)
        imageFiles.removeAll(keepCapacity: true)

        println("Subject view controller")

        self.navigationBarTitle.topItem?.title = "\(selectedSubject)"

        let backButton = UIBarButtonItem(title: "Back", style: UIBarButtonItemStyle.Plain, target: self, action: "backAction")

        self.navigationItem.leftBarButtonItem = backButton


        pickedSubject = selectedSubject

        println("Picked Subject = \(pickedSubject)")

        println("Subject view controller")

        self.navigationBarTitle.topItem?.title = "\(selectedSubject)"

        //let backButton = UIBarButtonItem(title: "Back", style: UIBarButtonItemStyle.Plain, target: self, action: "backAction")
        //self.navigationItem.leftBarButtonItem=barBtn;

        var subjectQuery = PFQuery(className: "BookPosting")

        subjectQuery.whereKey("CourseSubject", equalTo: pickedSubject)
        subjectQuery.findObjectsInBackgroundWithBlock {

            (objects: [AnyObject]!, error: NSError!) -> Void in

            if error == nil {

                // The find succeeded.
                println("Successfully retrieved \(objects.count) scores.")

                // Do something with the found objects
                if let objects = objects as? [PFObject] {

                    for object in objects {

                        descriptions.append(object["Description"] as String)

                        usernames.append(object["username"] as String)

                        imageFiles.append(object["imageFile"] as PFFile)

                        self.myTableView.reloadData()

                    }

                }

                println("descriptions.count = \(descriptions.count)")



                if (descriptions.count == 0) {

                    self.noBooksLabel.hidden = false

                } else {

                    self.noBooksLabel.hidden = true

                }

            } else {

                // Log details of the failure
                println("Error: \(error) \(error.userInfo!)")

            }

        }

    }

    func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {

        return descriptions.count

    }

    func tableView(tableView: UITableView, heightForRowAtIndexPath indexPath: NSIndexPath) -> CGFloat {

        return 100

    }

    func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {

        var cell: bookCell = tableView.dequeueReusableCellWithIdentifier("booksCells") as bookCell


        cell.subjectBookDescription.text = descriptions[indexPath.row]
        cell.subjectBookPosterUsername.text = usernames[indexPath.row]

        imageFiles[indexPath.row].getDataInBackgroundWithBlock { (imageData: NSData!, error: NSError!) -> Void in

            if error == nil {

                let image = UIImage(data: imageData)

                cell.subjectBookImage.image = image

            }

        }

        return cell
    }




}

最佳答案

我假设您正在尝试将 UIBarButtonItem 添加到连接到导出 navigationBarTitle 的导航栏。

self.navigationItem.leftBarButtonItem = backButton 替换为以下内容:

self.navigationBarTitle.topItem?.leftBarButtonItem = backButton

关于ios - 如何以编程方式将 UIBarButtonItem 添加到拖到 View 上的 UINavigationBar,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29271577/

有关ios - 如何以编程方式将 UIBarButtonItem 添加到拖到 View 上的 UINavigationBar的更多相关文章

  1. ruby - 我需要将 Bundler 本身添加到 Gemfile 中吗? - 2

    当我使用Bundler时,是否需要在我的Gemfile中将其列为依赖项?毕竟,我的代码中有些地方需要它。例如,当我进行Bundler设置时:require"bundler/setup" 最佳答案 没有。您可以尝试,但首先您必须用鞋带将自己抬离地面。 关于ruby-我需要将Bundler本身添加到Gemfile中吗?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/4758609/

  2. ruby - 如何以所有可能的方式将字符串拆分为长度最多为 3 的连续子字符串? - 2

    我试图获取一个长度在1到10之间的字符串,并输出将字符串分解为大小为1、2或3的连续子字符串的所有可能方式。例如:输入:123456将整数分割成单个字符,然后继续查找组合。该代码将返回以下所有数组。[1,2,3,4,5,6][12,3,4,5,6][1,23,4,5,6][1,2,34,5,6][1,2,3,45,6][1,2,3,4,56][12,34,5,6][12,3,45,6][12,3,4,56][1,23,45,6][1,2,34,56][1,23,4,56][12,34,56][123,4,5,6][1,234,5,6][1,2,345,6][1,2,3,456][123

  3. ruby - 解析 RDFa、微数据等的最佳方式是什么,使用统一的模式/词汇(例如 schema.org)存储和显示信息 - 2

    我主要使用Ruby来执行此操作,但到目前为止我的攻击计划如下:使用gemsrdf、rdf-rdfa和rdf-microdata或mida来解析给定任何URI的数据。我认为最好映射到像schema.org这样的统一模式,例如使用这个yaml文件,它试图描述数据词汇表和opengraph到schema.org之间的转换:#SchemaXtoschema.orgconversion#data-vocabularyDV:name:namestreet-address:streetAddressregion:addressRegionlocality:addressLocalityphoto:i

  4. ruby-on-rails - Rails - 一个 View 中的多个模型 - 2

    我需要从一个View访问多个模型。以前,我的links_controller仅用于提供以不同方式排序的链接资源。现在我想包括一个部分(我假设)显示按分数排序的顶级用户(@users=User.all.sort_by(&:score))我知道我可以将此代码插入每个链接操作并从View访问它,但这似乎不是“ruby方式”,我将需要在不久的将来访问更多模型。这可能会变得很脏,是否有针对这种情况的任何技术?注意事项:我认为我的应用程序正朝着单一格式和动态页面内容的方向发展,本质上是一个典型的网络应用程序。我知道before_filter但考虑到我希望应用程序进入的方向,这似乎很麻烦。最终从任何

  5. ruby-on-rails - 渲染另一个 Controller 的 View - 2

    我想要做的是有2个不同的Controller,client和test_client。客户端Controller已经构建,我想创建一个test_clientController,我可以使用它来玩弄客户端的UI并根据需要进行调整。我主要是想绕过我在客户端中内置的验证及其对加载数据的管理Controller的依赖。所以我希望test_clientController加载示例数据集,然后呈现客户端Controller的索引View,以便我可以调整客户端UI。就是这样。我在test_clients索引方法中试过这个:classTestClientdefindexrender:template=>

  6. ruby - 将 Bootstrap Less 添加到 Sinatra - 2

    我有一个ModularSinatra应用程序,我正在尝试将Bootstrap添加到应用程序中。get'/bootstrap/application.css'doless:"bootstrap/bootstrap"end我在views/bootstrap中有所有less文件,包括bootstrap.less。我收到这个错误:Less::ParseErrorat/bootstrap/application.css'reset.less'wasn'tfound.Bootstrap.less的第一行是://CSSReset@import"reset.less";我尝试了所有不同的路径格式,但它

  7. ruby-on-rails - date_field_tag,如何设置默认日期? [ rails 上的 ruby ] - 2

    我想设置一个默认日期,例如实际日期,我该如何设置?还有如何在组合框中设置默认值顺便问一下,date_field_tag和date_field之间有什么区别? 最佳答案 试试这个:将默认日期作为第二个参数传递。youcorrectlysetthedefaultvalueofcomboboxasshowninyourquestion. 关于ruby-on-rails-date_field_tag,如何设置默认日期?[rails上的ruby],我们在StackOverflow上找到一个类似的问

  8. ruby-on-rails - 如何在我的 Rails 应用程序 View 中打印 ruby​​ 变量的内容? - 2

    我是一个Rails初学者,但我想从我的RailsView(html.haml文件)中查看Ruby变量的内容。我试图在ruby​​中打印出变量(认为它会在终端中出现),但没有得到任何结果。有什么建议吗?我知道Rails调试器,但更喜欢使用inspect来打印我的变量。 最佳答案 您可以在View中使用puts方法将信息输出到服务器控制台。您应该能够在View中的任何位置使用Haml执行以下操作:-puts@my_variable.inspect 关于ruby-on-rails-如何在我的R

  9. ruby-on-rails - openshift 上的 rails 控制台 - 2

    我将我的Rails应用程序部署到OpenShift,它运行良好,但我无法在生产服务器上运行“Rails控制台”。它给了我这个错误。我该如何解决这个问题?我尝试更新ruby​​gems,但它也给出了权限被拒绝的错误,我也无法做到。railsc错误:Warning:You'reusingRubygems1.8.24withSpring.UpgradetoatleastRubygems2.1.0andrun`gempristine--all`forbetterstartupperformance./opt/rh/ruby193/root/usr/share/rubygems/rubygems

  10. ruby-on-rails - 相关表上的范围为 "WHERE ... LIKE" - 2

    我正在尝试从Postgresql表(table1)中获取数据,该表由另一个相关表(property)的字段(table2)过滤。在纯SQL中,我会这样编写查询:SELECT*FROMtable1JOINtable2USING(table2_id)WHEREtable2.propertyLIKE'query%'这工作正常:scope:my_scope,->(query){includes(:table2).where("table2.property":query)}但我真正需要的是使用LIKE运算符进行过滤,而不是严格相等。然而,这是行不通的:scope:my_scope,->(que

随机推荐