问题描述
- UIAlertView按钮到其他视图控制器
-
在应用中有一个uialertview
,有两个按钮,第一个是取消按钮,另一个是OK按钮,在按下OK按钮时,应该跳到一个带有storyboard标志符的视图控制器RootView。应该怎么实现?- (void)showAlarm:(NSString *)text { UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:@"show alarm" message:text delegate:self cancelButtonTitle:@"cancel" otherButtonTitles:@"ok", nil]; [alertView show]; } - (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex{ if (buttonIndex == 0){ NSLog(@"cancel"); }else if (buttonIndex == 1){ NSLog(@"ok"); UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"MainStoryboard_iPhone" bundle:[NSBundle mainBundle]]; UINavigationController *navigationController = [storyboard instantiateViewControllerWithIdentifier:@"navigationController"]; [navigationController presentViewController:[storyboard instantiateViewControllerWithIdentifier:@"RootView"] animated:YES completion:nil]; } }
解决方案
可尝试在当前控制器中,弹出identifier为navigationController的控制器,在navigationController控制器中再push到rootView.改成这样试试
UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"MainStoryboard_iPhone" bundle:[NSBundle mainBundle]];
UINavigationController *navigationController = [storyboard instantiateViewControllerWithIdentifier:@"navigationController"];
if (navigationController) {
[self presentViewController:navigationController animated:YES completion:nil];
}
接着在identifier 为navigationcontroller的控制器的viewwillappear中push到rootview
-(void)viewWillAppear {
RootViewController *rootController=[storyboard instantiateViewControllerWithIdentifier:@"RootView"];
if (rootController) {
[self.navigationController pushViewController:rootController animation:NO];
}
}
时间: 2024-12-03 04:12:42