返回
iOS开发利器:控制器传送门VCPicker,附demo!
IOS
2024-01-21 02:29:30
在项目开发初期,由于尚未接入后台网络数据,主要工作是界面的开发。随着业务页面的深入,需要查看二级、三级页面的效果,这需要编译后跳转两三次甚至更多,不断重复这个过程相对来说,不如直接启动就能查看所要查看的页面来得高效。
传送门入口的设计,最初是想通过摇一摇来实现,从而不影响原有的UI设计。以下是传送门功能的具体实现步骤:
1. 定义一个存放控制器类名的数组
static NSArray<Class> *classArray = nil;
2. 将控制器类名添加到数组中
// 在AppDelegate.m的didFinishLaunchingWithOptions方法中添加如下代码:
if (!classArray) {
classArray = [[NSArray alloc] initWithObjects:
@"ViewControllerA",
@"ViewControllerB",
@"ViewControllerC",
nil];
}
3. 实现摇一摇功能
// 在AppDelegate.m中添加如下代码:
- (void)motionBegan:(UIEventSubtype)motion withEvent:(UIEvent *)event {
if (event.subtype == UIEventSubtypeMotionShake) {
// 摇一摇后执行的代码
[self showPickerView];
}
}
4. 实现二维码扫描功能
// 在ViewController.m中添加如下代码:
- (void)scanQRCode {
// 二维码扫描后执行的代码
[self showPickerView];
}
5. 实现PickerView
// 在PickerView.m中添加如下代码:
- (void)pickerView:(UIPickerView *)pickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component {
// PickerView选中后执行的代码
NSString *className = classArray[row];
UIViewController *viewController = [[NSClassFromString(className) alloc] init];
[self presentViewController:viewController animated:YES completion:nil];
}
6. 显示PickerView
// 在AppDelegate.m中添加如下代码:
- (void)showPickerView {
PickerView *pickerView = [[PickerView alloc] init];
[self.window.rootViewController presentViewController:pickerView animated:YES completion:nil];
}
通过上述步骤,可以轻松实现直接启动特定页面,提高开发效率。
传送门功能的设计,最初是想通过摇一摇来实现,从而不影响原有的UI设计。经过讨论,我们还考虑了二维码扫描功能的实现。通过二维码扫描,也可以打开控制器传送门。这样,传送门功能的通用性大大提高,可以根据不同的项目需求进行定制。
希望本文对iOS开发人员有所帮助。demo代码已上传至GitHub,欢迎大家下载体验。
传送门功能的实现过程相对来说还是比较简单的,但是它却可以在开发过程中带来很大的便利。特别是对于项目初期开发阶段,还没有接入后台网络数据的时候,传送门功能更是可以大大提高开发效率。