2017-01-16 67 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在類上市。謝謝大家的幫助,我很感激。因此,要總結,我需要連接我創建到ViewController的button1,(因爲你不能只是把一個實現代碼如下頂部的按鈕,然後就控制單擊以另一種觀點認爲,把「秀」。這實際上使得它更容易我需要編寫簡單的cntrl從一個按鈕拖動到一個視圖,並設置「顯示」的方面。感謝所有人。

+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使用segue或編程方式推送/呈現TableViewController(:這裏是MyTableViewController)。

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) 
} 

如果使用pprogrammically確保您向Storyboard中的TableviewController提供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'是你希望在用戶按下按鈕時調用的方法的名稱。這是我答案的第二部分。 – JoGoFo

+0

JoGoFo我的代碼不在這裏編譯是一個截圖請檢查出來。 http://imgur.com/a/hQamM – Nivix