Отключить / включить содержимое ячейки uitableview при загрузке представления uitable из другого контроллера представления
У меня есть контроллер таблицы просмотра с панелью навигации, он используется для экрана профиля пользователя. В tableview есть 10 пользовательских ячеек, содержащих метку, текстовые поля, а кнопки textview и панели навигации используются для включения / выключения редактирования содержимого ячейки tableview. Пользователь может загрузить этот экран профиля пользователя из любого контроллера в приложении с помощью кнопки на этом контроллере просмотра. то, что я хочу сделать, - когда пользователь выбирает, чтобы открыть этот экран профиля пользователя (Tableview Controller) из любого места, должен появиться только режим просмотра; его ячейка с текстовыми полями и текстовыми представлениями не должна быть редактируемой. Однако, когда пользователь перемещается по экрану настроек приложения и переходит к экрану профиля пользователя, его ячейки могут быть включены или отключены для редактирования. какие-либо предложения для этого?
1 ответ
Попробуй это:
Часть 1. Подготовка вашего UITableViewController
учебный класс
- в .h:
- добавлять...
@property (nonatomic, assign) BOOL enableCellSelection;
,
- добавлять...
в м
в
-initWithStyle:
делать...- (id)initWithStyle:(UITableViewStyle)style { self = [super initWithStyle:style]; if (self) { enableCellSelection = YES; } return self; }
в
-cellForRowAtIndexPath:
делать...- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { //your normal cell handling code [cell setUserInteractionEnabled:(enableCellSelection ? UITableViewCellSelectionStyleBlue : UITableViewCellSelectionStyleNone)]; return cell; }
Часть 2. Показаны ваши UITableViewController
учебный класс
С любого метода...
//alloc/init normally
MyTableViewController *tvcObj = [[MyTableViewController alloc] init];
//explicitly disable the cell selection ability
tvcObj.enableCellSelection = NO;
//display the tableView
[self.navigationController pushViewController:tvcObj animated:YES];
По сути, мы создаем свойство, которое устанавливаем перед отображением tableView
и когда таблица загрузится, она прочитает это свойство и соответствующим образом установит возможность взаимодействия для всей ячейки.
это лучшее, что я мог придумать