我有点卡在UIAlertViewStylePlainTextInput上。 (我的代码太长了,无法在此处发布,但这是问题所在的部分。)这一切都有效,但程序不会等到用户在继续之前输入信息。 “editName”按钮不会更改下面代码中的显示,但updateDisplay按钮工作正常(如果在按下“updateDisplay”之前按下了“editName”按钮)。在用户输入信息(或取消)之前,如何让所有事情都停止。或者还有其他一些领导能带我到我需要去的地方。 (我一直在将其余的代码放在 - (void)alertView中,但这似乎不是正确的做法)。
提前致谢。
#import "HSTestViewController.h"
@implementation HSTestViewController
@synthesize display;
NSString *newName;
- (void)alertView:(UIAlertView *)alertView didDismissWithButtonIndex:(NSInteger)buttonIndex
{
if (buttonIndex == 1)
{
newName = [[alertView textFieldAtIndex:0] text];
}
}
- (void) getNewName;
{
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"You made the High Score List"
message:@"Please enter your name"
delegate:self
cancelButtonTitle:@"Cancel"
otherButtonTitles:@"Ok", nil];
alert.alertViewStyle = UIAlertViewStylePlainTextInput;
[alert show];
}
- (IBAction)editName:(id)sender
{
[self getNewName];
newName = display.text;
}
- (IBAction)updateDisplay:(id)sender
{
display.text = newName;
}
@end
答案 0 :(得分:2)
将UIAlertViewDelegate添加到课程中。并实现以下委托方法。
OK按钮索引值在您的情况下为1。
- (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex
{
if (buttonIndex)
{
// call the method or the stuff which you need to perform on click of "OK" button.
}
}
希望这有帮助。