2011-01-05 3 views
0

У меня есть представление, которое имеет кнопку, которая вызывает всплывающее окно UIActionSheet. Если пользователь нажимает кнопку «Отменить», исходная кнопка, которая отображает лист действий, по-прежнему подсвечивается, как если бы она была нажата. Как сбросить состояние после того, как пользователь отменяет действие?Отмена нажмите кнопку выделить после показа UIActionView на iphone

ответ

0

Sorry о моем ложном предположении, что вы были с помощью UIButton. Здесь должно быть то, что вам нужно:

- (void)tableView:(UITableView *)tableView 
didSelectRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
    //your implementation here 
    .... 

    //Then deselect the row so it quits the highlighted state 
    [tableView deselectRowAtIndexPath:indexPath animated:YES]; 
} 
+0

Это работало очень хорошо. Хотя я отменяю выбор, прежде чем я покажу UIActionSheet, это отлично работает для моего случая, так как UIActionSheet открывается сразу, давая пользователю ощущение щелчка, а не мою работу по отключению выделения строки. Еще раз спасибо. –

1

Используйте один из методов протокола для изменения состояния кнопки, которая была нажата:

@protocol UIActionSheetDelegate <NSObject> 
@optional 

// Called when a button is clicked. The view will be automatically dismissed after this call returns 
- (void)actionSheet:(UIActionSheet *)actionSheet clickedButtonAtIndex:(NSInteger)buttonIndex; 

// Called when we cancel a view (eg. the user clicks the Home button). This is not called when the user clicks the cancel button. 
// If not defined in the delegate, we simulate a click in the cancel button 
- (void)actionSheetCancel:(UIActionSheet *)actionSheet; 

- (void)willPresentActionSheet:(UIActionSheet *)actionSheet; // before animation and showing view 
- (void)didPresentActionSheet:(UIActionSheet *)actionSheet; // after animation 

- (void)actionSheet:(UIActionSheet *)actionSheet willDismissWithButtonIndex:(NSInteger)buttonIndex; // before animation and hiding view 
- (void)actionSheet:(UIActionSheet *)actionSheet didDismissWithButtonIndex:(NSInteger)buttonIndex; // after animation 

@end 
+0

Спасибо diwup. Но у меня возникают проблемы с «изменением состояния» кнопки. Что конкретно я должен установить в методе didDismissWithButtonIndex. [UIButton resignFirstResponder] или что-то в этом роде? –

+0

забыл упомянуть, что начальная «кнопка», начинающаяся с UIActionSheet, на самом деле является UItableviewcell. Поэтому мне просто нужно избавиться от синего цвета в этой строке. –

+0

@coder net: Я предполагаю, что вы использовали UIButton, поскольку UIButton является подклассом UIControl, а UIControl имеет свойство ** (BOOL), выделенное **. Я думаю, вы можете вернуть это свойство в ** NO ** после отмены своего листа действий. –

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