0

Twitter を統合したアプリを作成しようとしています。ユーザーが共有ボタンをクリックすると、このボタンの画像が変更されます。これはすでに機能していますが、ユーザーが他のビューをクリックして最後に共有ボタンでビューをクリックすると、画像は再び古いものになります。これを修正する方法がわからないので、アドバイスをいただけると
助かります:)コードは次のとおりです。

私の.hファイルで:

- (IBAction)postToTwitter:(id)sender;
@property (weak, nonatomic) IBOutlet UIButton *tweetBTN;

...そして私の.mファイルで:

- (void)viewDidLoad
{
//some code here
   if ([[UIImage imageNamed:@"twitter02_dark.png"] isEqual:_tweetBTN.currentImage]) {
       UIImage *twitterImage2 = [UIImage imageNamed:@"twitter02_active.png"];
       [_tweetBTN setImage:twitterImage2 forState:UIControlStateNormal];
   }
   else {
       UIImage *twitterImage1 = [UIImage imageNamed:@"twitter02_active.png"];
       [_tweetBTN setImage:twitterImage1 forState:UIControlStateNormal];
   }

}





  - (IBAction)postToTwitter:(id)sender {       
        if ([SLComposeViewController isAvailableForServiceType:SLServiceTypeTwitter])
        {
            SLComposeViewController *tweetSheet = [SLComposeViewController          
composeViewControllerForServiceType:SLServiceTypeTwitter];
            //some code here
            UIImage *twitterImage2 = [UIImage imageNamed:@"twitter02_dark.png"];
            [_tweetBTN setImage:twitterImage2 forState:UIControlStateNormal];
        }
    }

誰かが私を助けてくれたら最高です...

更新: 私は答えのように修正しました...しかし、私はt get one thing: after first launching the app the image should be active (because it isn「ツイート」しません)...

if ([[NSUserDefaults standardUserDefaults] boolForKey:@"tweeted"]) {
        UIImage *twitterImage = [UIImage imageNamed:@"twitter02_dark.png"];
        [_tweetBTN setImage:twitterImage forState:UIControlStateNormal];
    }
    else {
        UIImage *twitterImage = [UIImage imageNamed:@"twitter02_active.png"];
        [_tweetBTN setImage:twitterImage forState:UIControlStateNormal];
    }

…でも画像が暗い…なんで?その後、このifメソッドは正常に機能します...私には非常に奇妙です

4

1 に答える 1

0

ユーザーのデフォルトを使用して、ボタンが押されたという事実を保存することができます

postToTwitter メソッドで:

[[NSUserDefaults standardUserDefaults] setBool:YES forKey:@"tweeted"];

viewDidLoad のステートメントを削除し、これを viewDidAppear に入れます。

if ([[NSUserDefaults standardUserDefaults] boolForKey:@"tweeted"]) {
   UIImage *twitterImage = [UIImage imageNamed:@"twitter02_dark.png"];
   [_tweetBTN setImage:twitterImage forState:UIControlStateNormal];
}
else {
   UIImage *twitterImage = [UIImage imageNamed:@"twitter02_active.png"];
   [_tweetBTN setImage:twitterImage forState:UIControlStateNormal];
}

これはアプリの起動間で持続するため、アプリを終了してから戻った場合、ボタンはまだ暗いままです

于 2013-05-22T18:17:44.920 に答える