对于那些使用three20的TTPostController的人,如何在发送请求之前和之后处理用户错误?即,如果用户试图发布空白评论,我希望能够提醒他们并保持视图处于活动状态,以便他们可以修复它。
我遇到的问题是在出现问题后让模态视图保持打开状态。我可以提醒用户,但一旦他们点击OK,模态就会被解雇。我以为我可以使用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,模态视图就会被解雇。
我有什么遗漏或没有正确理解吗?
编辑:我还应该注意,我尝试使用alertView的didDismissWithButtonIndex:方法尝试阻止视图卸载,但我没有成功。
答案 0 :(得分:0)
前几天我遇到了这个。如果您将nil而不是self作为委托传递给:
UIAlertView initWithTitle:message:delegate:cancelButtonTitle:otherButtonTitles
当用户触摸“OK”时,TTPostController不再被解除。
- (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;
}