我有一个已经存在值的选择器视图,例如其中一个内容是天气,我有一个与选择器视图一起工作的按钮,所以当你选择天气并按下按钮时会弹出一个警告并说欢迎到X.你选择了天气,而不是你推OK以删除警报,我想知道是否有可能在你按下OK后它会带你到有天气的视图控制器。我从来没有见过这样做,这是一个多功能的应用程序,在选择器上还有大约6或7个其他项目,所以如果有人可以帮助那将是伟大的:这是我的代码。顺便说一下,如果我没有代码块,我很不熟悉网站。
- (void)viewDidLoad
{
NSArray *data = [[NSArray alloc] initWithObjects:@"Weather", @"Calendar", @"Facebook", @"Twitter", @"Instagram",@"Tasks" ,nil];
self.array = data;
[super viewDidLoad];
// Do any additional setup after loading the view from its nib.
}
#pragma marks Picker Data Source Methods
-(NSInteger)pickerView:(UIPickerView *)pickerView numberOfRowsInComponent:(NSInteger)component {
return [_array count];
}
-(NSInteger)numberOfComponentsInPickerView:(UIPickerView *)pickerView {
return 1;
}
#pragma mark Picker Delegate Methods
-(NSString *)pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component {
return [_array objectAtIndex:row];
}
- (IBAction)ButtonPressed:(id)sender {
NSString *select = [_array objectAtIndex:[_picker selectedRowInComponent:0]];
NSString *title = [ [NSString alloc] initWithFormat:@"You selected %@!" , select];
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:title message:@"Welcome To One" delegate:nil cancelButtonTitle:@"OK" otherButtonTitles: nil];
[alert show];
}
答案 0 :(得分:2)
你必须像bellow一样需要为UIAlertView提供标签,否则它会在每个UIAlertView点击上推送视图
- (void)pickerView:(UIPickerView *)pickerView didSelectRow:(NSInteger)row inComponent: (NSInteger)component
{
NSString *select = [_array objectAtIndex:component];
NSString *title = [ [NSString alloc] initWithFormat:@"You selected %@!" , select];
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:title message:@"Welcome To One" delegate:nil cancelButtonTitle:@"OK" otherButtonTitles: nil];
alert.tag = 1001;
alert.delegate = self;
[alert show];
}
-(void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex
{
if (alertView.tag == 1001)
{
[self.navigationController performSegueWithIdentifier:@"Identifier" sender:nil];
}
}
答案 1 :(得分:1)
- (void)pickerView:(UIPickerView *)pickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component
{
// Show alert here
[[[UIAlertView alloc]
initWithTitle:@"" message:@"Alert Message"
delegate:self cancelButtonTitle:@"OK" otherButtonTitles:nil]
show];
}
-(void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex
{
if (buttonIndex == 0)
{
UIStoryboard * storyboard = self.storyboard;
ViewController * detail = [storyboard instantiateViewControllerWithIdentifier: @"YourViewControlller"];
[self.navigationController pushViewController: detail animated: YES];
}
}
答案 2 :(得分:0)
- (void)pickerView:(UIPickerView *)pickerView didSelectRow:(NSInteger)row inComponent: (NSInteger)component
{
NSString *select = [_array objectAtIndex:component];
NSString *title = [ [NSString alloc] initWithFormat:@"You selected %@!" , select];
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:title message:@"Welcome To One" delegate:nil cancelButtonTitle:@"OK" otherButtonTitles: nil];
alert.delegate = self;
[alert show];
}
-(void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex
{
if (buttonIndex == 0)
{
[self.navigationController performSegueWithIdentifier:@"Identifier" sender:nil];
}
}