2014-12-17 2 views
0

Обычно я меняю вид, как это:Как изменить вид при касании кнопки в пользовательских UITableViewCell

var goBackToMainView:MainViewController = self.storyboard?.instantiateViewControllerWithIdentifier("navigation2") as MainViewController 

self.presentViewController(goBackToMainView, animated: true, completion: nil) 

Но если я пытаюсь сделать это в моем обычае UITableViewCell, когда пользователь нажмите кнопку, она дает мне ошибки, такие как customTableViewCell does not have a member named 'storyboard' and 'presentViewController'

Как изменить вид в моем TableViewCell?

ответ

1

Вы пытались добавить в качестве подзаголовка?

Пример:

var tableViewCell = UITableViewCell(frame: aFrame) 

tableViewCell.addSubview(aView) 
+0

И как мне получить aView, если я не могу использовать 'self.storyboard'? –

+0

так что ваш TableViewCell из раскадровки? Где вы создаете «дочерние» представления, которые вы хотите добавить/изменить в/в UITableViewCell? – Leandroc

+0

Я создаю другой вид в раскадровке –

1

Почему это в подкласс UITableViewCell? Вы должны управлять своим представлением в ViewController.

В контроллере представления:

import UIKit 

// Take note of UITableViewDelegate, you'll need it to be able to use 
// tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) 
class MyTableViewController: UITableViewController, UITableViewDelegate { 

    // Assuming that you have a storyboard variable in AppDelegate 
    let appDelegate: AppDelegate = UIApplication.sharedApplication().delegate as AppDelegate 

    // .. more code here like viewDidLoad, etc. 

    override func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) { 

     var viewController = appDelegate.storyboard.instantiateViewControllerWithIdentifier("MainViewController") as MainViewController 

     // This will probably appear as a modal 
     self.presentViewController(viewController, animated: true, completion: nil) 
    } 

} 

Примечание: Я просто сделал быстрый площадка для кода выше, так что вы, возможно, придется разворачивать УСТРОЙСТВА.

Если у вас есть контроллер вида, встроенный в контроллер навигации, вы можете использовать Unwind Segues. Подробнее об этом здесь: What are Unwind segues for and how do you use them?

Cheers!

+0

Причина, чтобы изменить его, пользователь нажимает кнопку, а не ячейку –

Смежные вопросы