2016-11-19 12 views
0

ボタンを押してもボタンのテキストを変更しようとしていますが、機能しません。何か不足していますか?WKInterfaceButtonのタイトルはどのように設定されていますか?

私は何時間も問題を把握しようとしています。 ご協力いただければ幸いです。

h。ファイル

#import <WatchKit/WatchKit.h> 
#import <Foundation/Foundation.h> 

@interface InterfaceController : WKInterfaceController 
{ 

    IBOutlet WKInterfaceButton*playpausebtn; 
} 
-(IBAction)play; 
@end 

mです。ファイル

#import "InterfaceController.h" 
#import <WatchConnectivity/WatchConnectivity.h> 


@interface InterfaceController() <WCSessionDelegate> 

@end 


@implementation InterfaceController 

- (void)awakeWithContext:(id)context { 
    [super awakeWithContext:context]; 

    // Configure interface objects here. 
} 
- (void)willActivate { 
    [super willActivate]; 

    if ([WCSession isSupported]) { 
     WCSession *session = [WCSession defaultSession]; 
     session.delegate = self; 
     [session activateSession]; 



    } 

} 

- (void)didDeactivate { 
    // This method is called when watch view controller is no longer visible 
    [super didDeactivate]; 
} 




-(IBAction)play{ 
    [playpausebtn setTitle:@"sleep"]; 

} 

答えて

0

Swift-3 Xcode-8.1ではうまくいきます。

// InterfaceController.swift // WatchKit拡張 インポートWatchKit インポート財団インポートWatchConnectivity

クラスInterfaceController:WKInterfaceController、WCSessionDelegate {

@IBOutlet var textLabel: WKInterfaceLabel! 

var session:WCSession? 

override func awake(withContext context: Any?) { 
    super.awake(withContext: context) 

    // Configure interface objects here. 
} 

override func willActivate() { 
    // This method is called when watch view controller is about to be visible to user 
    super.willActivate() 
    checkSupportOfSession() 
    changeAttributeOfText() 
} 

@IBOutlet var buttonOutlet: WKInterfaceButton! 

override func didDeactivate() { 
    // This method is called when watch view controller is no longer visible 
    super.didDeactivate() 
} 

func checkSupportOfSession() { 
    if(WCSession.isSupported()) { 
     self.session = WCSession.default() 
     self.session?.delegate = self 
     self.session?.activate() 
    } 
} 

func session(_ session: WCSession, activationDidCompleteWith activationState: WCSessionActivationState, error: Error?) { 
    print("session") 
} 

func session(_ session: WCSession, didReceiveMessage message: [String : Any]) { 

    let message:String = message["textIndex"] as! String 
    textLabel.setText(message) 
    print(message) 

} 

func changeAttributeOfText() { 

    let paragraphStyle = NSMutableParagraphStyle() 
    paragraphStyle.alignment = .left 
    let font = UIFont.boldSystemFont(ofSize: 12) 
    let attributes:Dictionary = [NSParagraphStyleAttributeName:paragraphStyle , NSFontAttributeName:font ] 

    let attributeString:NSAttributedString = NSAttributedString(string: "HELLO", attributes: attributes) 
    textLabel.setAttributedText(attributeString) 

} 

//Change the ButtonTitle after click 
@IBAction func buttonClicked() { 
    buttonOutlet.setTitle("textNew") 
}} 

Demo App

関連する問題