2017-01-16 11 views
1

私はストーリーボード上にいくつかの別個のビューコントローラを備えた小さなプロジェクトを作成していて、ボタンはUITableViewControllerユーザーがホームページに戻る方法。私はMainTableVCの上にボタンを作成しました。私がこのアプリケーションを実行すると、ボタンが表示されます。私が必要とするのは、単にビューコントローラと呼ばれるメインビューコントローラをボタンに表示するだけです。私はまだすべてのステップが私のための飛躍であるように学習しています。ここにボタンを作成したviewDidLoadのコードを示します。ストーリーボードで別のビューを表示するためにUITableVCで作成されたボタンを接続する方法

let button1 = UIButton(frame: CGRect(origin: CGPoint(x: self.view.frame.width/2 - 25, y: self.view.frame.height - 70), size: CGSize(width: 50, height: 50))) 
button1.backgroundColor = UIColor.blue 

self.navigationController?.view.addSubview(button1) 

また、クラスにはUITableViewControllerが記載されています。皆さんありがとうございます、私はそれを感謝します。要約すると、私はbutton1を私がviewcontrollerに接続する必要があります(あなたは単にテーブルビューの上にボタンを置くことができず、他のビューをクリックして "show"を設定するだけで済むので)たとえば、ボタンからビューにドラッグして「表示」を設定するという側面をコード化する必要があります。ありがとうございます。

+0

どのようにあなたのUITableViewが表示されていますか?あなたは 'self.navigationController.pushViewController'を使ってナビゲーションスタックにプッシュしていますか?それとも' self.presentViewController'でモーダルを提示していますか? – JoGoFo

+0

ナビゲーションコントローラーJoGoFoにセットアップしてもらえますか? – Nivix

+0

JoGoFoそれはself.presentViewControllerですか? – Nivix

答えて

0

は同じくらい私は..あなたが手動で使用してMainViewControllerでボタンを作成し、それにターゲットを追加することができます理解

let button1 = UIButton(frame: CGRect(origin: CGPoint(x: self.view.frame.width/2 - 25, y: self.view.frame.height - 70), size: CGSize(width: 50, height: 50))) 
button1.backgroundColor = UIColor.blue 
button1.addTarget(self, action: #selector(MainViewController.actionOpenTableView(_:)), forControlEvents: .TouchUpInside) 
self.navigationController?.view.addSubview(button1) 

また、あなたができるボタン1の ターゲットを捕獲するあなたのクラスに機能actionOpenTableViewを作成push/present TableViewController(:here MyTableViewController)をsegueまたはプログラムで使用します。

func actionOpenTableView(btn:UIButton){ 
//if using segue of motherboard 
// self.performSegueWithIdentifier("MoveToTableView", sender: self) 


//if using programmically 
let tableVC = self.storyboard?.instantiateViewControllerWithIdentifier("MyTableVC")as! MyTableViewController 
     self.navigationController?.pushViewController(tableVC, animated: true) 
} 

もし、プログラムを使用しているのであれば、StoryboardのStoryboardIDにStoryboardIDを必ず入力してください。

enter image description here あなたTableViewControllerに得ればあなたは...使用のデフォルトのバックボタンをいずれかの缶やMyTableViewController

からあなたMainViewControllerに戻って取得するために従うようカスタムメソッドを作成
@IBAction func mBackActionBtn(sender: AnyObject) { 
     self.navigationController?.popViewControllerAnimated(true) 
    } 
0

まず、ボタンをナビゲーションコントローラに直接追加しないでください。

self.navigationItem.leftBarButtonItem = UIBarButtonItem(title: "Title", style: .plain, target: self, action: #selector(navButtonPressed)) 

あなたは、アクションのためのメソッドを実装することができます:あなたの代わりに、以下の使用、カスタムボタンを追加します

func navButtonPressed() { 
    // if pushed onto nav vc: 
    // _ = self.navigationController?.popViewController(animated: true) 

    // if presented modally (as suggested in your comment: 
    self.dismiss(animated: true, completion: nil) 
} 
+0

と#selector(navButtonPushed)に何を配置する必要がありますか?ありがとうJoGoFo – Nivix

+0

'#selector'はキーワードです、' navButtonPressed'はユーザがボタンを押したときに呼び出すメソッドの名前です。これは私の答えの2番目の部分でした。 – JoGoFo

+0

JoGoFo私のコードはここではコンパイルされていません、スクリーンショットがあります。 http://imgur.com/a/hQamM – Nivix

関連する問題