2015-09-28 2 views
1

У меня есть UITableView и UITableViewCell. В каждом UITableViewCell я хочу открыть галерею или щелкнуть изображение. Я обычно представляю UIImageviewController какоткрытая камера от UITableViewCell iOS

- (IBAction)takePhoto:(UIButton *)sender { 

UIImagePickerController *picker = [[UIImagePickerController alloc] init]; 
picker.delegate = self; 
picker.allowsEditing = YES; 
picker.sourceType = UIImagePickerControllerSourceTypeCamera; 

    [self presentViewController:picker animated:YES completion:NULL]; 
} 

Как я могу представить из ячейки?

Миша :)

+1

Настоящий контроллер, содержащий UITableView. –

+0

Вы можете вызвать тот же метод в методе didSelectrow !!!! –

+0

@ Mr.T У меня есть другие кнопки в tableViewCell. вызов в didSelect также повлияет на них – Misha

ответ

1

Правильное решение заключается в использовании правильного проектирования MVC. Попросите свою пользовательскую ячейку определить протокол для своих собственных методов делегирования. Установите контроллер табличного представления для каждого делегата ячейки.

Одним из методов протокола является метод, предлагающий делегату представить от его имени контроллер представления.

Вашего протокол ячейка будет иметь такой метод, как:

- (void)cell:(CustomTableViewCell *)cell presentViewController:(UIViewController *)controller; 

вашего метод заказной клетку takePhoto вы сделать что-то вроде этого:

- (IBAction)takePhoto:(UIButton *)sender { 
    UIImagePickerController *picker = [[UIImagePickerController alloc] init]; 
    picker.delegate = self; 
    picker.allowsEditing = YES; 
    picker.sourceType = UIImagePickerControllerSourceTypeCamera; 

    [self.delegate cell:self presentViewController:picker];   
} 

Затем контроллер табличного бы реализовать метод:

- (void)cell:(CustomTableViewCell *)cell presentViewController:(UIViewController *)controller { 
    [self presentViewController:controller animated:YES completion:NULL]; 
} 
+0

Thanku @rmaddy Я забыл все о делегатах :( – Misha

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