Как предотвратить модальное представление TTPostController от отклонения при ошибках? - PullRequest
0 голосов
/ 24 мая 2011

Для тех из вас, кто использует TTPostController three20 , как вы обрабатываете ошибки пользователя до и после отправки запроса?т. е. если пользователь пытается опубликовать пустой комментарий, я хочу иметь возможность предупреждать его и сохранять его активным, чтобы он мог это исправить.

Проблема, с которой я столкнулся, заключается в получении модального представленияоставайтесь открытыми после того, как что-то пойдет не так.Я могу предупредить пользователя, но как только он нажмет кнопку ОК, модал будет отклонен.Я думал, что смогу использовать TTPostControllerDelegate: делегат willPostText для достижения этой цели, но это, похоже, не работает, или я не совсем понимаю, как он предназначен для работы.

Что яделать:

/**
 * The user has posted text and an animation is about to show the text return to its origin.
 *
 * @return whether to dismiss the controller or wait for the user to call dismiss.
 */
- (BOOL)postController:(TTPostController*)postController willPostText:(NSString*)text {
    if ([text length] == 0) {
        UIAlertView * alert = [[UIAlertView alloc] initWithTitle:nil 
                                                         message:@"Your message is blank" 
                                                        delegate:self 
                                               cancelButtonTitle:@"OK" 
                                               otherButtonTitles:nil ];
        [alert show];
        [alert release];    

        return false;
    }        
    return true;
}

Если я попытаюсь опубликовать пустой комментарий, я получу предупреждение, сообщающее мне, но как только я нажму OK, модальное представление будет отклонено.

Есть ли что-то, что я упускаю или неправильно понимаю?

Редактировать: Следует также отметить, что я пытался использовать didViewDisissWithButtonIndex: alertView, чтобы попытаться остановить просмотрот разгрузки, но мне не удалось.

1 Ответ

0 голосов
/ 04 августа 2011

Я столкнулся с этим на днях. Если вы передадите nil вместо self в качестве делегата в:

UIAlertView initWithTitle:message:delegate:cancelButtonTitle:otherButtonTitles 

TTPostController больше не закрывается, когда пользователь нажимает «OK».

- (BOOL)postController:(TTPostController*)postController willPostText:(NSString*)text {
    if ([text length] == 0) {
        UIAlertView * alert = [[UIAlertView alloc] initWithTitle:nil 
                                                         message:@"Your message is blank" 
                                                        delegate:nil 
                                               cancelButtonTitle:@"OK" 
                                               otherButtonTitles:nil ];
        [alert show];
        [alert release];    

        return false;
    }        
    return true;
}
...