你好我想通过watchKit播放。我设置了所有的东西。但是当我醒来时,来自watchKit的父应用按钮按下它醒来但是从playerController类我有一个方法来播放诗。但是这个方法没有被调用,我的代码在appdelegate下面。
- (void)application:(UIApplication *)application handleWatchKitExtensionRequest:(NSDictionary *)userInfo reply:(void(^)(NSDictionary *replyInfo))reply {
NSString *str=[userInfo objectForKey:@"counterValue"];
//reply(@{@"one":@"string"});
PlayerController *vc=[[PlayerController alloc] init];
if ([vc isKindOfClass:[PlayerController class]]){
if ([str isEqualToString:@"1"]) {
[vc playpoems];
NSString *theee=@"12345";
reply(@{@"one":theee});
}
}
}
在这段代码中我得到了来自回复块的Log,但是只有类中的方法没有调用...这个方法在课堂上正常工作。
答案 0 :(得分:0)
您正在appdelegate中创建一个新的viewcontroller实例。 请按照我的说法尝试使用此代码。
你的.m文件中的
@implementation PlayerController
PlayerController *selfvc;
+(PlayerController *)getInstance{
return selfvc;
}
- (void)viewDidLoad {
[super viewDidLoad];
// Do any additional setup after loading the view.
selfvc =self;
}
并在您的标头文件中
@interface PlayerController : UIViewController
+(PlayerController *)getInstance;
@end
然后在您的appdelegate中尝试使用此代码
- (void)application:(UIApplication *)application handleWatchKitExtensionRequest:(NSDictionary *)userInfo reply:(void(^)(NSDictionary *replyInfo))reply {
NSString *str=[userInfo objectForKey:@"counterValue"];
//reply(@{@"one":@"string"});
PlayerController *vc=[PlayerController getInstance];
if ([vc isKindOfClass:[PlayerController class]]){
if ([str isEqualToString:@"1"]) {
[vc playpoems];
NSString *theee=@"12345";
reply(@{@"one":theee});
}
}
}
然后将调用您的控制器函数。