ios - WatchConnectivity session in more than one view controller -
i developing watch app using watchos 2 , parent app on ios 9 beta. using watchconnectivity
sessions pass data apple watch iphone. need have session in 2 different view controller files, there problems start new wcsessions in each of view controllers , use them?
basically trying navigate 1 view controller other view controller using performseguewithidentifier
, works fine when put in viewdidload
, put inside session method, starts breaking, , suspecting has wcsessions.
following part of code in trying navigate:
- (void)session:(nonnull wcsession *)session didreceivemessage:(nonnull nsdictionary *)message replyhandler:(nonnull void (^)(nsdictionary * __nonnull replymessage))replyhandler { nsstring *msg = [message objectforkey:@"msg"]; // nsdictionary* replyvalues = @{@"session":@"established between phone , watch"}; if ([msg isequaltostring:@"fromwatch"]) { iswatch = true; [self performseguewithidentifier: @"startdashboardsegue" sender: self]; } // nsuserdefaults *prefs = [nsuserdefaults standarduserdefaults]; // [prefs setobject:messageflag forkey:@"messageflag"]; //replyhandler(replyvalues); }
thanks!
the comment above wcsessiondelegate section in wcsession header states:
----------------------------- wcsessiondelegate -----------------------------
the session calls delegate methods when content received , session state changes. delegate methods called on same queue. delegate queue non-main serial queue. client's responsibility dispatch queue if neccessary.
so if want update ui (and using uikit) have dispatch main queue before invoking ui update methods.
Comments
Post a Comment