objective-c – 将self作为上下文传递给WatchKit中的presentControllerWithNames

objective-c – 将self作为上下文传递给WatchKit中的presentControllerWithNames,第1张

概述在我的演示界面控制器中,我有以下代码: - (IBAction)showModal { NSArray *namesArray = @[@"A", @"B", @"C"]; NSArray *contextsArray = @[self, self, self]; [self presentControllerWithNames:namesArray contexts:co 在我的演示界面控制器中,我有以下代码:

- (IBAction)showModal {    NSArray *namesArray = @[@"A",@"B",@"C"];    NSArray *contextsArray = @[self,self,self];    [self presentControllerWithnames:namesArray contexts:contextsArray];}

我想做的是,在我的模态分页接口控制器的每个页面上将传递的上下文设置为委托属性,如下所示:

#import "ModalPageInterfaceController.h"@interface ModalPageInterfaceController ()@property (nonatomic,weak) ID delegate;@end@implementation ModalPageInterfaceController- (instancetype)initWithContext:(ID)context {    self = [super initWithContext:context];    if (self) {        self.delegate = context;    }    return self;}@end

但是我发现,当调用initWithContext:时,上下文参数对于除了第一页之外的所有内容都是nil,因此我无法为这些页面设置我的委托属性.我做错了什么,或者这只是一个WatchKit错误?

解决方法 我意识到这是前一段时间的问题,但值得发布一个解决方案.

我相信这是Beta 3及更早版本中的WatchKit错误.

我发现它的唯一方法是在数组中传递参数.

[self presentControllerWithnames:@[@"First",@"Second",@"Third"],contexts:@[@[self],@[@0,self],@1,self]]];

它似乎只是消除了重复的背景,因此它们需要不同.我的接口控制器代码已设置为检查上下文是否为数组并枚举以查找第一个非NSNumber实例.

This Apple dev forums post解释了相同的解决方案,后续消息表明这已在Beta 4中得到修复.

总结

以上是内存溢出为你收集整理的objective-c – 将self作为上下文传递给WatchKit中的presentControllerWithNames全部内容,希望文章能够帮你解决objective-c – 将self作为上下文传递给WatchKit中的presentControllerWithNames所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

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

原文地址: http://outofmemory.cn/langs/1227439.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-05
下一篇 2022-06-05

发表评论

登录后才能评论

评论列表(0条)

保存