如何在UINavigationBar中添加UISegmentedControl?

Jac*_*hek 16 uinavigationbar uitableview uisegmentedcontrol ios

我试图将标题添加UISegmentedControl到底部UINavigationBar.但我不能添加它,我不能添加UISegmentedControltableView.headerView,因为我需要在搜索栏tableView.headerView,所以只有一个解决方案,我需要添加UISegmentedControl到的底部UINavigationBar.任何人都有另一种想法,我可以解决这种情况?

这是我尝试过的代码(使用Swift):

        class searchingViewController: UITableViewController{ 
                override func viewDidLoad() {         
                    var items: [AnyObject] = ["Searching Method A", "Searching Method B"]
                    var searchSC:UISegmentedControl!
                    searchSC.frame = CGRectMake(0, 0, frame.width - 20, 30)
                    searchSC.selectedSegmentIndex = 1
                    searchSC.backgroundColor = UIColor(white: 1, alpha: 1)
                    searchSC.layer.cornerRadius = 5.0
                    navigateUIToolBar = UIToolbar(frame: CGRectMake(frame.minX + 10, ios7_8Info.getStatusBarHeight()+self.navigationController!.navigationBar.frame.height+frame.minY+(21/2),
                        frame.width - 20, 30))

                    navigateUIToolBar.addSubview(searchSC)
                    self.navigationController?.navigationBar.addSubview(navigateUIToolBar)
                  }
          }
Run Code Online (Sandbox Code Playgroud)

Har*_*kar 25

在Swift 4中的UINavigationBar中添加段控件

    let segment: UISegmentedControl = UISegmentedControl(items: ["First", "Second"])
    segment.sizeToFit()
    segment.tintColor = UIColor(red:0.99, green:0.00, blue:0.25, alpha:1.00)
    segment.selectedSegmentIndex = 0;
    segment.setTitleTextAttributes([NSAttributedString.Key.font : UIFont(name: "ProximaNova-Light", size: 15)!], for: .normal)
    self.navigationItem.titleView = segment
Run Code Online (Sandbox Code Playgroud)

  • 有人也低估了我的答案...我猜有人因无法理解而感到沮丧. (2认同)

Mag*_*goo 18

把它放在navigationBar中有这样的东西的右边和标题视图...使用....访问

self.navigationItem.titleView = mySegmentedControl

备查....

self.navigationItem.rightBarButtonItem
self.navigationItem.leftBarButtonItems // for adding an Array of items
Run Code Online (Sandbox Code Playgroud)

要在导航视图下面添加它,但要将其添加到静态..将它添加到viewController.view ...您使用的是UITableViewController吗?如果是这样,可以切换到UIViewController并添加一个tableView,然后将您的toolbarview作为该self.view的子视图.


小智 5

我想您正在寻找这个。

let searchVC = self.storyboard?.instantiateViewController(withIdentifier:"idofcontroller")
let searchController = UISearchController(searchResultsController: searchVC)
searchController.searchResultsUpdater = self
searchController.obscuresBackgroundDuringPresentation = false
searchController.searchBar.placeholder = "Search"
navigationItem.searchController = searchController
definesPresentationContext = true

searchController.searchBar.scopeButtonTitles = ["News", "Photos", "Videos"]
searchController.searchBar.delegate = self
Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明