我正在尝试创建一个简单的网页浏览器式应用程序,无论何时用户想要使用后退,本地或转发功能,都会通过警报视图来确认。
控制台窗口确认调用IBAction没有问题,但每当我希望它调用Alert View时就会出现空白。
任何帮助都将不胜感激。
- (IBAction)controlPanelActions:(id)sender{
if (_controlPanel.selectedSegmentIndex == 0)
{
if ([_viewWeb canGoBack])
{
[self askToGoHome:nil];
}
}
- (IBAction)askToGoHome:(id)sender {
UIAlertView *alertDialog;
alertDialog.tag = 2;
alertDialog = [[UIAlertView alloc]
initWithTitle: @"Confirm"
message:@"Continue with Home Action?"
delegate: self
cancelButtonTitle: @"Yes"
otherButtonTitles: @"No", nil];
[alertDialog show];
}
- (void)alertView:(UIAlertView *)alertView
clickedButtonAtIndex:(NSInteger)buttonIndex {
NSString *buttonTitle=[alertView buttonTitleAtIndex:buttonIndex];
if (alertView.tag == 1)
{
if ([buttonTitle isEqualToString:@"Yes"])
{
NSLog(@"back - yes");
[_viewWeb goBack];
}
}
if (alertView.tag == 2)
{
NSLog(@"home - pre-yes");
if ([buttonTitle isEqualToString:@"Yes"])
{
NSLog(@"home - yes");
HOMEPAGEURL = [[NSURL alloc] initWithString:HOMEPAGE];
[self.viewWeb loadRequest:[NSURLRequest requestWithURL:HOMEPAGEURL]];
}
}
if (alertView.tag == 3)
{
if ([buttonTitle isEqualToString:@"Yes"])
{
[_viewWeb goForward];
}
}
}
答案 0 :(得分:1)
在调用init之前设置alertDialog.tag = 2;
。
因此,每次设置标记时,都会将标记设置为nil。它将无效。
答案 1 :(得分:0)
Alertview alloc和init方法将其标记设置为0。
所以alertDialog.tag = 2;
无效。
在alloc和init方法之后添加此行。