iOS轻量级组件化管理工具,让你轻轻松松添加自己的小组件.

2019独角兽企业重金招聘Python工程师标准>>> hot3.png

TXRouter

  • 轻量级组件化管理工具,让你轻轻松松添加自己的小组件.该工具原理简单、制作轻松、思路清晰等优点.

TXRouter优点

  • 比MGJRouter更加简单、使用更加方便
  • 原理简单、制作轻松、思路清晰

TXModel缺点

  • 不能高大上定义URL

代码片段

/*路由管理器*/
+ (TXRouter*)routerManager;/*** 创建对象* @param className 类名字*/
- (id)createObjectWithClassName:(NSString *)className;/*** 创建对象* @param className 类名字* @param parameters 传递的参数*/
- (id)createObjectWithClassName:(NSString *)className parameters:(NSDictionary*)parameters;

使用方法

  • #import "TXRouter.h"
- (void)viewDidLoad {[super viewDidLoad];self.view.backgroundColor=[UIColor whiteColor];self.title=@"TX路由工具";CGFloat viewW=self.view.frame.size.width;CGFloat spacing=20;CGFloat buttonH=30;CGFloat buttonX=spacing;CGFloat buttonW=viewW-buttonX*2;CGFloat button1Y=100;UIButton *button1 = [[UIButton alloc] initWithFrame:CGRectMake(buttonX, button1Y, buttonW, buttonH)];[button1 setTitle:@"访问VC1" forState:UIControlStateNormal];[button1 setTitleColor:[UIColor blackColor] forState:UIControlStateNormal];button1.tag = 1;[button1 addTarget:self action:@selector(back:) forControlEvents:UIControlEventTouchUpInside];[self.view addSubview:button1];CGFloat button2Y=CGRectGetMaxY(button1.frame)+spacing;UIButton *button2 = [[UIButton alloc] initWithFrame:CGRectMake(buttonX, button2Y, buttonW, buttonH)];[button2 setTitle:@"访问VC2" forState:UIControlStateNormal];[button2 setTitleColor:[UIColor blackColor] forState:UIControlStateNormal];button2.tag = 2;[button2 addTarget:self action:@selector(back:) forControlEvents:UIControlEventTouchUpInside];[self.view addSubview:button2];CGFloat button3Y=CGRectGetMaxY(button2.frame)+spacing;UIButton *button3 = [[UIButton alloc] initWithFrame:CGRectMake(buttonX, button3Y, buttonW, buttonH)];[button3 setTitle:@"访问VC3(代码块传值)" forState:UIControlStateNormal];[button3 setTitleColor:[UIColor blackColor] forState:UIControlStateNormal];button3.tag = 5;[button3 addTarget:self action:@selector(back:) forControlEvents:UIControlEventTouchUpInside];[self.view addSubview:button3];CGFloat butto3Y=CGRectGetMaxY(button3.frame)+spacing;UIButton *butto3 = [[UIButton alloc] initWithFrame:CGRectMake(buttonX, butto3Y, buttonW, buttonH)];[butto3 setTitle:@"访问Web页面" forState:UIControlStateNormal];[butto3 setTitleColor:[UIColor blackColor] forState:UIControlStateNormal];butto3.tag = 3;[butto3 addTarget:self action:@selector(back:) forControlEvents:UIControlEventTouchUpInside];[self.view addSubview:butto3];CGFloat button4Y=CGRectGetMaxY(butto3.frame)+spacing;UIButton *button4 = [[UIButton alloc] initWithFrame:CGRectMake(buttonX, button4Y, buttonW, buttonH)];[button4 setTitle:@"访问未定义的页面" forState:UIControlStateNormal];[button4 setTitleColor:[UIColor blackColor] forState:UIControlStateNormal];button4.tag = 4;[button4 addTarget:self action:@selector(back:) forControlEvents:UIControlEventTouchUpInside];[self.view addSubview:button4];// Do any additional setup after loading the view, typically from a nib.
}-(void)back:(UIButton *)btn{switch (btn.tag) {case 1:{NSMutableDictionary *dic = [[NSMutableDictionary alloc] init];[dic setValue:@"hello world" forKey:@"title"];UIViewController *viewController = [[TXRouter routerManager] createObjectWithClassName:@"TXTest1ViewController" parameters:dic];if (viewController) {[self.navigationController pushViewController:viewController animated:YES];}}break;case 2:{NSMutableDictionary *dic = [[NSMutableDictionary alloc] init];[dic setValue:@"hello world" forKey:@"title"];UIViewController *viewController = [[TXRouter routerManager] createObjectWithClassName:@"TXTest2ViewController" parameters:dic];if (viewController) {[self presentViewController:viewController animated:YES completion:nil];}}break;case 3:{NSMutableDictionary * dic = [[NSMutableDictionary alloc] init];[dic setValue:@"https://www.baidu.com" forKey:@"url"];[dic setValue:@"百度一下" forKey:@"title"];UIViewController *viewController = [[TXRouter routerManager] createObjectWithClassName:@"TXTestWebViewController" parameters:dic];if (viewController) {[self.navigationController pushViewController:viewController animated:YES];}}break;case 5:{NSMutableDictionary *dic = [[NSMutableDictionary alloc] init];//声明代码块void (^textBlock) (NSString *msg);//可以将block加入字典,当做一个回调取值textBlock = ^(NSString *msg){[btn setTitle:[NSString stringWithFormat:@"访问VC3(%@)",msg] forState:UIControlStateNormal];NSLog(@"从VC3中获取的数据是===>%@",msg);};[dic setObject:textBlock forKey:@"block"];UIViewController *viewController = [[TXRouter routerManager] createObjectWithClassName:@"TXTest3ViewController" parameters:dic];if (viewController) {[self presentViewController:viewController animated:YES completion:nil];}}break;case 4:{UIViewController * viewController = [[TXRouter routerManager] createObjectWithClassName:@"TXUnknowvc" parameters:nil];if (viewController) {[self presentViewController:viewController animated:YES completion:nil];}}default:break;}
}

查看项目源码请点这里!

项目结构展示

image

效果展示

转载于:https://my.oschina.net/u/2483781/blog/1821833

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/47058.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

iOS14 Widget小组件开发实践1——了解Widget

iOS14带来了新的UI组件:WidgetKit,人称小组件(用过安卓的都能理解),这货的前身其实就是iOS10时候引入的Today Extension。 Widget为应用程序提供了这样一种功能:其可以让用户在主屏幕上展示App中用户所关心…

如何用iOS14 Widget小组件自定义玩法

一.了解Widget iOS14带来了新的UI组件:WidgetKit,人称小组件(用过安卓的都能理解),这货的前身其实就是iOS10时候引入的Today Extension。 Widget为应用程序提供了这样一种功能:其可以让用户在主屏幕上展示App中用户所关心的信息。例如一款天气软件,其可以附带一个Widg…

iOS14 Widget开发踩坑(二)修正版-多个小组件

iOS14 Widget开发踩坑(二)修正版-多个小组件 前言添加多个小组件情况1.对于已经写好的一个小组件情况2.对于新建好还没写的小组件 Widgets的限制突破小组件个数限制的方法参考文献 前言 2020年12月3日 经过进一步的学习 发现了文章中还有很多错误&#…

IOS小组件(1):概述

IOS小组件(1):概述 引言小组件是什么?小组件概述小组件开发备注小组件实现原理结语引言 本系列文章作者是安卓开发,以安卓开发的视角学习IOS小组件,记录一下踩坑记录,如有讲得不对的地方,路过大佬多包涵。如果你是想深入学习小组件,建议您顺着笔者的编号顺序阅读本系列…

ios中在app应用内刷新小组件数据

需求: 我们需要在app应用内刷新时间线,让桌面小组件加载最新的内容。即app内修改了共享数据后,需要通知桌面小组件强制刷新,显示改变后的内容。 当某种情况影响到小组件的当前时间线时,您的 App 可以指示 WidgetKit …

android 仿苹果 小组件,仿ios14桌面小部件

仿ios14桌面小部件,这是一款面向广大安卓手机用户推出的高仿iOS14桌面插件软件,大家可以使用这款软件快速完成自己想要的桌面显示,多种插件一键点击轻松完成设置过程,让大家体验到同款iOS14桌面强大的功能,非常有意思的…

iOS14 小组件 开发1

前言:小组件的开发和我们正常情况开发App的逻辑是一样的,正常情况分为:网络请求,数据模型,view,渲染.只不过是小组件的开发使用了 swiftUI 语言来编写,所以要对SwiftUI的空间有所了解. 好!那我们接下来开始我们的小组件开发吧. 首先,创建Widget Extension 然后选择证书,起个名…

Android-为应用添加widget小组件

最近在实现为应用程序添加小组件的功能,记录一下开发过程。 1.添加一个小组件模板 设置组件类名称,其他属性按需求设置,这些属性在生成的文件中也可修改 ​​​​​​ 工程main目录下会生成类文件,res目录下生成资源文件&#x…

iOS 15 新增多个实用小组件

iOS 14 上线加入的桌面小组件功能非常受欢迎,因此苹果iOS 15新系统对小组件功能进行深度优化,并加入了多个实用又有趣的小组件。用户可以简单通过上下滑动来选择、重新排列、智能堆栈小组件,也可以对它们进行删除、智能旋转,还可以…

Widget小组件

目录 技能点 Widget背调 a. 设计定位 b. Widget小组件限制 c. Widget小组件 开发须知 d. 什么是 SwiftUI App Group 数据共享 a. 配置 App Groups 1、开发者账号配置,并更新pp证书 2、Xcode配置 b. 缓存数据共享-代码实现 1、文件存储 2. 沙盒存储&…

iOS_小组件widget基本功能

创建 在当前工程里新建target 选择Today Extension 独立应用 widget虽做为应用的扩展, 但却是两个完全独立的应用 widget上线需要单独申请 AppID 和 Bundle Identifier , 需要配置 证书 和 Provisioning Profiles(配置文件) 第三方pod导入, 也的重新导入一份 target MMWidg…

iOS 14-Widget小组件2—实现

Widget 实现 认识与配置实现效果图支持显示方式交互数据共享刷新策略网络加载屏幕适配支持多个小部件布局例子源码其他问题参考认识与配置 上一篇文章已经做了比较详细的介绍与创建配置iOS 14-Widget小组件1—初识 实现效果图 支持显示方式 @main 入口添加.supportedFamilie…

自定义开发苹果手机显示汽车小组件

实时获取汽车数据信息实时获取汽车定位信息(点击地址进入高德)显示当前位置的天气情况可定制显示当前城市是否限行可定制当前城市油价信息实时刷新最新数据 感兴趣的可以私聊加群

iOS 小组件 widget

苹果官网文档(apple developer)widgetkit 文章目录 1.创建小组件2.编辑小组件3.数据共享4.拖动排序5.参考链接 1.创建小组件 File -> New -> Target 搜索widget,点击next 勾上Include Configuration Intent, 表示需要编辑小组件,点击f…

iOS 小组件 widget 编辑小组件

返回小组件专栏:iOS 小组件 widget 文章目录 1.编辑小组件2.intentHandler 1.编辑小组件 如下图,编辑小组件,需要在GirlWidget.intentdefinition中配置 点击右下角的加号,新建一个枚举类型 枚举类型改名MyEnum,并添加三个值 …

iOS 小组件开发

iOS14之后Apple引入了新的WidgetKit,舍弃了原有额TodayExtension。 开发准备: 新的WidgetExtension只能通过SwiftUI进行开发; Widget有三种尺寸:systemSmall、 systemMedium、systemLarge,三种尺寸对应固定的UI类型布…

iOS 小组件 widget group id, app group, 数据共享

返回小组件专栏:iOS 小组件 widget 主APP, 小组件, 小组件的intent是三个独立的target, 需要有三个bundle id和对应的配置文件。而且他们的bundle identifier是从属关系。小组件的bundle id必须以主app的bundle id作为前缀。比如主app的为“com.test”&a…

演讲实录:指标平台+AI 的技术落地和未来展望

7月14日,以“释放数智生产力”为主题的 Kyligence 用户大会在上海成功举行。大会现场发布了 Kyligence 最新产品家族:AI 数智助理——Kyligence Copilot 的预览版、一站式指标平台 Kyligence Zen 的 Cloud 和 Enterprise 版本,以及企业级 OLA…

程序员坐行李箱迎寒风编码 2 小时,目击者:激励我写了一篇论文!

整理 | 朱珂欣 出品 | CSDN程序人生(ID:coder_life) 对于很多程序员而言,工作三连无疑就是——“查 bug、改 bug 、写 bug ”。 程序员加班的话题,也早已经不足为奇,实际上除了办公室,地铁站…

解决Windows update medic service服务禁用不了拒绝访问

很多小伙伴发现禁用Windows update服务后没几天又自动开启,无法禁用自动更新就是因为Windows update medic service服务导致,但是在禁用Windows update medic service服务的时候又出现拒绝访问,如下 解决方法: 方法一&#xff1…