请教iOS的UIKit框架中获取根UIWindow实例的方法问题

请教iOS的UIKit框架中获取根UIWindow实例的方法问题,第1张

1、下载安装并打开itunes。

2、让手机进入恢复模式:

一、先长按住电源键,出现关机选项时,请滑动关机;

二、随后再按电源键开机,屏幕会出现苹果标志,不要松开电源键;

三、接着再按住主屏 Home 键,直到屏幕黑屏;

四、当屏幕黑屏时,请松开电源键,继续按住主屏 Home 键不要松开,直到电脑端的iTunes 出现“检测到一个处于恢复模式的 iPhone”;

向传值:

、利用present block 块进行向传值

RootViewControllerm:

SubViewController svc = [[SubViewControlleralloc]init];

//svclabeltext = @"向Block传值";

//句向属性传值,作用让B页面,能持A页面址,B要向A进行反向传值

//想给谁传值,要持谁址

svcdelegate =self;

[selfpresentViewController:svc animated:YEScompletion:^{

svclabeltext =@"向Block传值";

}];

二、利用AB页面属性传值

反向传值:

、利用block进行 b界面向 a 界面反向传值

a 声明 block属性所要传值放入block 函数指针b接收

h文件

@property(nonatomic,copy)void(^blockColor) (UIColor );

m文件

selfblockColor([UIColor blackColor]);

注意用 copy

bm文件 接收

svcblockColor = ^(UIColor color){

selfviewbackgroundColor = color;

};

二、通知观察者模式反向传值

例: viewController1向 viewController2传值

1

Appdelegate 文件接收所要传递值变量用保存所要传递数据界面1写入界面2读取

@property (nonatomic,copy)NSString string;

2

viewController1要传值候(按钮按)数据通UIApplication单例获取Appdelegate delegate传入Appdelegate文件同向通知发送广播

[[NSNotificationCenter defaultCenter] postNotificationName:@"鬼" object:nil];

3

viewController2 向通知注册添加自观察者数据改变用单例delegate 读取数据

-(void)becomObserver

{

//获通知,注册观察者

[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(changeText) name:@"鬼" object:nil];

}

//收广播消息调用

-(void)changeText

{

//首先获取appDelegate象

AppDelegate appDeleagte = [UIApplication sharedApplication]delegate;

NSString string = appDeleagtestring;

NSLog(@"sss:%@",string);

labeltext = appDeleagtestring;

NSLog(@"labeltxt = %@",labeltext);

}

三、利用协议界面反向传值

AppDelegate

viewController2委托viewController1代理

viewController2委托制定协议并且属性delegate = viewController1,要遵循协议;

viewController1viewController2象属性delegate设自(vc1)

1ViewController1m

vc2delegate = self;

2ViewController2h文件

//委托制定协议代理必须遵守

@protocol BackValueDelegate

-(void)changeText:(NSString )string

@end

@interface ViewController1 :UIViewController

//用设置代理并且遵守协议

@property (nonatomic,retain) iddelegate;

@end

3 ViewController2m文件

//利用代理传数据

[selfdelegate changeText:@""];

四、用系统自带UIApplication单例进行传值

五、用自实现单例进行传值

六、用TargetAction 式进行两界面反复调用传值

Xcode菜单选择file-new-target,在d出的地方找到shareExtension并选择,填写好对应的信息后,会生成一个新的target

生成之后在工程文件中选中新建的extension,在Signing & Capabilities中添加App Groups:

添加一个group-id(主app也需要新建一个app-group,和此处一致):

在infoplist中配置文件接收的类型

最后写处理的逻辑

ShareViewControllerswift

AppDelegateswift

Universal Link 是 Apple 在 iOS9 推出的一种能够方便的通过传统 >

最近在做自己的framework静态库,需要用到支付宝和微信支付,支付回调又是在Appdelegate中拿到 所以想找一种替代或者说捕获Appdelegate声明周期的方法,苦寻之后发现有大神处理过类似的事情,所以就尝试了一下,首先感谢大神的文章。

文章地址:( >

PhoneMovieAppDelegate delegate = [[UIApplication sharedApplication]delegate];

NSArray views = delegatetabControllerviewControllers;

for(id vv in views)

{

UINavigationController cc = (UINavigationController )vv;

NSString S = cctitle;

if([S isEqualToString:@"下载管理"])

{

DownLoadViewController d = (DownLoadViewController)[ccviewControllers objectAtIndex:0];

PlayFinishViewController v = [[PlayFinishViewController alloc] init];

[dnavigationController pushViewController:v animated:YES];

return;

}

}

这个方法是通过tabbar的标题来进行识别的,可以得到对应的navigationcontroller。现在还有一个问题,就是views里面的东西并不是所有tabbar中的,是当前有效的,more中的获得不到。

最近项目中遇到了SDK内需要横屏,而工程必须竖屏的情况,解决方法有两个:

1最保险的方法,工程AppDelegateh添加

2SDK捕获AppDelegate方法,只要工程实现了-(UIInterfaceOrientationMask)application:(UIApplication )application supportedInterfaceOrientationsForWindow:(UIWindow )window代理方法就可以了。方法没完善,就只写主要部分了。

以上就是关于请教iOS的UIKit框架中获取根UIWindow实例的方法问题全部的内容,包括:请教iOS的UIKit框架中获取根UIWindow实例的方法问题、ios cfnotificationcenteraddobserver怎么实现传值、iOS使用ShareExtension获取分享的图片等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/9625462.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-30
下一篇 2023-04-30

发表评论

登录后才能评论

评论列表(0条)

保存