2015-12-08 1 views
1

Из того, что я понимаю, я не могу подключить кнопку в своей ячейке к моему TableViewController, используя выходное соединение. Я могу однако подключить кнопку в моей ячейке к моему TableView, используя соединение с действием. Это корень моих огромных проблем.Я не могу подключить кнопку TableViewCell к TableViewController! Как подключить значения из TableViewCell к TableViewController?

В моей камере у меня есть текстовое изображение, изображение с наложенной кнопкой и кнопка отправки. ЭТО CELL

enter image description here

поручаю изображение в ImageView с помощью imagePicker. imagePicker должен быть открыт из tableViewController (он не может быть открыт в ячейке).

var MyImage = UIImage?() 
var MyName = String() 
var MyStatus = String() 

// This is ImgButton that overlays the imageView 
@IBAction func MyImageButtonAction(sender: AnyObject) { 

// Select Image 
    let imagePicker = UIImagePickerController() 
    imagePicker.delegate = self 
    imagePicker.sourceType = UIImagePickerControllerSourceType.PhotoLibrary 
    imagePicker.allowsEditing = false 
    self.presentViewController(imagePicker, animated: true, completion: nil) 

} 
func imagePickerController(picker: UIImagePickerController, didFinishPickingImage image: UIImage, editingInfo: [String : AnyObject]?) { 
// The image chosen by the user is now called MyImage 
    MyImage = image 
    self.dismissViewControllerAnimated(true, completion: nil) 

} 

Теперь, когда кнопка посыла прослушиваются, я делаю MyImage в PFFile для Parse.com и отправить его в базу данных. Мне не нужно здесь давать подробные сведения. Эта часть работает нормально.

Проблема что я не знаю, как правильно соединить ячейку с tableViewController таким образом, чтобы я мог передавать значения от одного к другому. Я хочу получить textView.text из ячейки, в tableViewController, чтобы оттуда я мог отправить его в базу данных с изображением. Другая проблема заключается в том, что, хотя пользователь может выбрать изображение и отправить его в базу данных, , они не могут получить выбранное изображение в их изображении..

Это моя попытка соединить ячейку tableViewController:

override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell { 
    let cell = tableView.dequeueReusableCellWithIdentifier("MyStatusTableViewCell", forIndexPath: indexPath) as! MyStatusTableViewCell 

    cell.MyName.text = MyName 

    return cell 
} 

Я надеялся, что его код означает, что MyName теперь переменная, которая содержит .text, что пользовательский ввод в textView.text в ячейке. Я попытался отправить MyName в базу данных, но он оказался пустым.

Как получить textView.text из таблицыViewCell в мою базу данных?

+0

Я также попытался с помощью одной кнопки посыла выполнять две функции: отправить изображение в базу данных из ViewController и отправить .text в базу данных из ячейки , но это не позволило мне сделать это –

ответ

1

и может установить метку каждого элемента UITableViewCell и то и может получить доступ к нему в cellForRowAtIndexPath как

if let textfield = cell.viewWithTag(21) as? UITextField { 
    textfield.text = MyName 
} 
+0

Я внедрил ваш код. MyName по-прежнему не совпадает с текстовым вводом пользователя в ячейке. –

0

Вы можете создать IBAction вместо IBOutlet и кнопки действий вы можете преобразовать отправителя в положение и найти индекс этот путь

@IBAction func buttonClick(sender: AnyObject) { 
    let btnPos: CGPoint = sender.convertPoint(CGPointZero, toView: self.tableView) 
    let indexPath: NSIndexPath = self.tableView.indexPathForRowAtPoint(btnPos)! 

    print("indexPath->\(indexPath.row)") 
} 
0

Я нашел проблему, которая находится внутри вашего UITableViewcellForRowAtIndexPath метода. Вы должны загрузить свои собственные клетки как это показано ниже: -

override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell { 
    var cell = tableView.dequeueReusableCellWithIdentifier("MyStatusTableViewCell", forIndexPath: indexPath) as! MyStatusTableViewCell 
if cell == nil{ 

//Here you have to load your custom cells like that below 
let array = NSBundle.mainBundle().loadNibNamed("MyStatusTableViewCell", owner: nil, options: nil) 
cell = array[0] as? MyStatusTableViewCell 
} 
cell.MyName.text = "MyName" //Now it will set your textview value 
return cell 
}