2017-06-02 110 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。那不會下移。