2016-04-05 21 views
0

これはおそらく奇妙な要求のように聞こえるかもしれませんが、ナビゲーションビューア(ナビゲーションバー付きで、スタックからコントローラをプッシュ/ポップすることができます)を表示する方法を見つけようとしています。テーブルビューでスクロールします。この機能をどのように達成できますか?ナビゲーションビューアをテーブルビューに表示するにはどうすればよいですか?

答えて

2

あなたの質問を読んだとき、私はデモを行うことに興味がありました。私はナビゲーションコントローラを組み込んだコンテナを使用しようとしましたが、残念ながら通常のUITableViewのコンテナを繰り返し使用することはできません。だから私は、静的な細胞を使用するためにUITableViewControllerを使用して、私はナビゲーションコントローラを埋め込むことができた:

http://recordit.co/EsvsyWhcLX

ストーリーボードは、次のようになります包み、あなたがのUITableViewを使用したい Storyboard

方法#2プロトタイプ細胞を用いた:

http://recordit.co/d3yhbuJ4Ww

することができますあなたの細胞の中にカスタムセルを作成し、あなたはナビゲーションコントローラをインスタンス化し、サブビューとしてのビューを追加します。

Using UITableView

とCustomTableViewCell.swiftクラスには、次の手順を実行します

class CustomTableViewCell: UITableViewCell { 

var navIsAdded = false // boolean used to make sure that nav view controller is added and will not be added again 
var currentNavigationController : UINavigationController! // retain the controller so that push/pop works, if you didn't retain it like this, the view will be added but no push or pop will work 


func setupNavVC(){ 
    if navIsAdded{ 
     return 
    } 
    let storyboard = UIStoryboard(name: "Main", bundle: nil) 
    self.currentNavigationController = storyboard.instantiateViewControllerWithIdentifier("navVC") as! UINavigationController 

    let view = self.currentNavigationController.view 
    var frame = view.frame 
    frame.size = self.frame.size 
    view.frame = frame 
    self.contentView.addSubview(view) 
    navIsAdded = true 
} 

override func layoutSubviews() { 
    setupNavVC() 
} 

override func setSelected(selected: Bool, animated: Bool) { 
    super.setSelected(selected, animated: animated) 

    // Configure the view for the selected state 
} 

} 
+0

ねえホッサム、私はあなたがあなたの答えで与えたGIFのリンクを開こうとしましたが、私はそれを開くことができません、それはアクセスが拒否されました – Abdul91

+0

、ごめんなさい、更新 –

関連する問題