UI基础 - 模态视图

▶ ModalView

1 - 模态视图不是专门的某个类,而是通过视图控制器的 presentViewController方法 弹出的视图,我们称为模态视图。模态视图出现的场景一般是临时弹出的窗口,譬如:登录窗口开发中在当前视图上再弹出一个视图、分享视图、注册等等

2 - 代码示例:由 ViewController 推出模态控制器 DetailController

// - ViewController.m

复制代码
 1 #import "ViewController.h"
 2 #import "DetailController.h"
 3 
 4 @implementation ViewController
 5 
 6 - (void)viewDidLoad {
 7     [super viewDidLoad];
 8     self.view.backgroundColor = [UIColor whiteColor];
 9     self.navigationController.navigationBar.hidden = YES;
10     
11     // Btn
12     UIButton *pushBT = [UIButton buttonWithType:UIButtonTypeCustom];
13     pushBT.frame = CGRectMake(50, 80, 220, 45);
14     [pushBT setTitle:@"进入下级页面" forState:UIControlStateNormal];
15     pushBT.backgroundColor = [UIColor brownColor];
16     [pushBT addTarget:self action:@selector(showNewController) forControlEvents:UIControlEventTouchUpInside];
17     [self.view addSubview:pushBT];
18     
19 }
20 
21 -(void)showNewController{
22     
23     DetailController *newVC = [DetailController new];
24     newVC.modalTransitionStyle = UIModalTransitionStylePartialCurl;// 过渡样式
25     newVC.modalPresentationStyle = UIModalPresentationFullScreen;  // 展示样式
26     [self presentViewController:newVC animated:YES completion:^{
27         NSLog(@"present finished!");
28     }];
29     
30 }
31 
32 @end
复制代码

// - DetailController.m

复制代码
 1 #import "DetailController.h"
 2 @implementation DetailController
 3 
 4 - (void)viewDidLoad {
 5     [super viewDidLoad];
 6     self.view.backgroundColor = [UIColor orangeColor];
 7     // Btn
 8     UIButton *backBT = [UIButton buttonWithType:UIButtonTypeCustom];
 9     backBT.frame = CGRectMake(50, 80, 220, 45);
10     [backBT setTitle:@"返回上级页面" forState:UIControlStateNormal];
11     backBT.backgroundColor = [UIColor brownColor];
12     [backBT addTarget:self action:@selector(backPreController) forControlEvents:UIControlEventTouchUpInside];
13     [self.view addSubview:backBT];
14 }
15 
16 
17 -(void)backPreController{
18     // 撤销模态
19     // 方式一
20     [self dismissViewControllerAnimated:YES completion:^{
21         NSLog(@"back finished!");
22     }];
23     
24     // 方式二:前提是模态试图是导航栏控制器的根视图
25     [self.navigationController dismissViewControllerAnimated:YES completion:^{
26         
27     }];
28 
29 }
30 @end
复制代码

 

posted on   低头捡石頭  阅读(21)  评论(0编辑  收藏  举报

编辑推荐:
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

导航

统计

点击右上角即可分享
微信分享提示