在应用中有一个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];
}
}
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。