湖州市吴兴区建设局网站,2023能用的磁力搜索引擎,手机排行榜最新,全国定制网站服务器云主机界面切换 push和poppresent和dismiss示例程序 push和pop
在 Objective-C 中,pop 和 push 通常是与 UINavigationController 一起使用的方法,用于控制导航栈中视图控制器的跳转和回退。
push 和 pop 通常成对使用,用于实现导航栈的前进和后退功能。当用户进入新的视图控制器时… 界面切换 push和poppresent和dismiss示例程序 push和pop
在 Objective-C 中,pop 和 push 通常是与 UINavigationController 一起使用的方法,用于控制导航栈中视图控制器的跳转和回退。
push 和 pop 通常成对使用,用于实现导航栈的前进和后退功能。当用户进入新的视图控制器时,使用 push 方法将其加入导航栈;当用户需要返回上一个视图控制器时,使用 pop 方法从导航栈中移除当前视图控制器。
push的代码格式
[self.navigationController pushViewController:two animated:YES];pop的代码格式
//返回上一视图控制器
[self.navigationController popViewControllerAnimated:YES];
//返回根视图控制器
[self.navigationController popToRootViewControllerAnimated:YES];
//返回到指定的控制器
[self.navigationController popToViewController:one animated:YES];present和dismiss
在 Objective-C 中,present 和 dismiss 是与视图控制器相关的两个重要概念,它们描述了视图控制器的呈现和关闭行为。present 用于以模态方式呈现一个新的视图控制器。dismiss 用于关闭当前模态呈现的视图控制器,返回到上一级视图控制器。
区别与联系
present 和 dismiss 是相对的概念,present 用于呈现新的视图控制器,dismiss 用于关闭当前视图控制器。通常情况下,一个视图控制器被 present 之后,需要通过 dismiss 方法来关闭自己,返回到上一级视图控制器。
示例代码
[self presentViewController:three animated:YES completion:nil];[self dismissViewControllerAnimated:YES completion:nil];示例程序 VCone.m:
#import VCone.h
#import VCtwo.h
interface VCone ()endimplementation VCone
synthesize item _item;
- (void)viewDidLoad {[super viewDidLoad];self.view.backgroundColor [UIColor redColor];_item [[UIBarButtonItem alloc] initWithTitle:下一页 style:UIBarButtonItemStylePlain target:self action:selector(pressRight)];self.navigationItem.rightBarButtonItem _item;
}-(void) pressRight
{VCtwo* two [[VCtwo alloc] init];[self.navigationController pushViewController:two animated:YES];}/*
#pragma mark - Navigation// In a storyboard-based application, you will often want to do a little preparation before navigation
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {// Get the new view controller using [segue destinationViewController].// Pass the selected object to the new view controller.
}
*/endVCtwo.m:
#import VCtwo.h
#import VCone.h
#import VCthree.h
interface VCtwo ()endimplementation VCtwo
synthesize btn _btn;
synthesize btn1 _btn1;
- (void)viewDidLoad {[super viewDidLoad];self.view.backgroundColor [UIColor greenColor];_btn [[UIBarButtonItem alloc] initWithTitle:上一页 style:UIBarButtonItemStylePlain target:self action:selector(press)];self.navigationItem.leftBarButtonItem _btn;_btn1 [[UIBarButtonItem alloc] initWithTitle:下一页 style:UIBarButtonItemStylePlain target:self action:selector(pressright)];self.navigationItem.rightBarButtonItem _btn1;
}-(void) press
{[self.navigationController popViewControllerAnimated:YES];
}-(void) pressright
{VCthree* three [[VCthree alloc] init];[self presentViewController:three animated:YES completion:nil];
}/*
#pragma mark - Navigation// In a storyboard-based application, you will often want to do a little preparation before navigation
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {// Get the new view controller using [segue destinationViewController].// Pass the selected object to the new view controller.
}
*/end
VCthree.m:
#import VCthree.h
#import VCtwo.h
interface VCthree ()endimplementation VCthree- (void)viewDidLoad {[super viewDidLoad];// Do any additional setup after loading the view.self.view.backgroundColor [UIColor yellowColor];
}-(void) touchesBegan:(NSSetUITouch * *)touches withEvent:(UIEvent *)event
{[self dismissViewControllerAnimated:YES completion:nil];
}/*
#pragma mark - Navigation// In a storyboard-based application, you will often want to do a little preparation before navigation
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {// Get the new view controller using [segue destinationViewController].// Pass the selected object to the new view controller.
}
*/end
效果图