2017-06-02 115 views
-1

我试图将导航栏添加到Main.storyboard中的表格视图。 在Main.storyboard中,没有任何问题导航栏在以上的表格视图中出现。表视图导航栏正在关闭

此外,数据加载之前没有问题。导航栏可见以上表格视图的一部分。

Image 1

但是,当所有的数据被加载时,导航栏将会下来

Image 2

我想保持导航栏的tableview的上面部分。 我错在哪里?如何解决这个问题呢?

我认为,FirstViewController.swift并不重要,但我共享所有代码。

FirstViewController.swift

import UIKit 


class FirstViewController: UIViewController,UITableViewDataSource,UITableViewDelegate { 

    @IBOutlet weak var tableView: UITableView! 

    var tbCount = 0 

    var myMp3s = [Mp3]() 

    override func viewDidLoad() { 
     super.viewDidLoad() 

     tableView.dataSource = self 
     tableView.delegate = self 

     let url = URL(string: "http://example.php") 


     URLSession.shared.dataTask(with:url!, completionHandler: {(data, response, error) in 
      guard let data = data, error == nil else { return } 

      do { 
       let json = try JSONSerialization.jsonObject(with: data, options: .allowFragments) as! [String:Any] 
       let posts = json["server_response"] as? [[String: Any]] ?? [] 


       for i in posts { 

        print(i["id"]!) 

        let mp3 = Mp3(id: i["id"] as! String, category: i["kategori"] as! String) 

        self.myMp3s.append(mp3) 


       } 

       self.tableView.reloadData() 


       print("counte", self.myMp3s.count) 

      } catch let error as NSError { 
       print(error) 
      } 
     }).resume() 

    } 

    func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int { 
     return myMp3s.count 

    } 

    func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { 

     let cell = UITableViewCell() 

     cell.textLabel?.textAlignment = .center 

     cell.textLabel?.text = self.myMp3s[indexPath.row].category 

     return cell 
    } 


    func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) { 
     print(myMp3s[indexPath.row].category) 
    } 


    override func didReceiveMemoryWarning() { 
     super.didReceiveMemoryWarning() 
     // Dispose of any resources that can be recreated. 
    } 



} 
+0

尝试禁用NavigationController的navigationBar的**半透明**属性。 – KKRocks

回答

1

Try this

这将创建一个导航栏

+0

我做了你说的,但标题为空,如何设置标题? 我是新手 https://i.hizliresim.com/Ak22dL。png –

+0

您可以单击故事板中的导航栏,然后设置标题。 – Gregga17

+0

或者你可以在代码中说:self.title =“title”@gurkanstack – Gregga17

1

的问题是你有拖放从Object libraryNavigationBarViewController因此将其删除。如果你想显示NavigationBar嵌入YourViewControllerUINavigtionController

Embed您的ViewControllerNavigationConttoller请按照此步骤操作。

  1. 选择在Interface Builder ViewController
  2. 转到Editor菜单并选择嵌入。
  3. 在新的选项列表中选择NavigationController

要设置titleNavigation bar,选择Navigation Item您的ViewController从Document Outline Bar后去Attribute Inspector节并设置标题。

您还可以设置标题编程,添加以下行viewDidLoad

self.title = "Title" 

enter image description here

+0

我做了你说的但标题为空,如何设置标题?我是新手https://i.hizliresim.com/Ak22dL.png –

+0

@gurkanstack查看编辑答案 –

+0

谢谢,我解决了我的问题。 –

0

按我查看尝试设置导航栏在tableview中的headerview。那不会下移。