الأزرار المضافة ، WebView ، منافذ مضافة ، ولكن لا يمكنك اللعب معها في الكود

StackOverflow https://stackoverflow.com/questions/2495282

  •  21-09-2019
  •  | 
  •  

سؤال

لقد صنعت شريط أدوات مع زرين على ذلك. ثم قمت بإنشاء منافذين في وحدة التحكم في الفصل. ثم قمت بتوصيل وحدة التحكم بالأزرار وحددت المنافذ.

أخيرًا ، أعادت كتابة ملفات الفصل (أضيفت:

IBOutlet id next;
IBOutlet id previous;

إلى ملف .h).

حتى الآن ، كل شيء يبدو على ما يرام. ولكن بعد ذلك أحاول مكانًا في الكود لتغيير حالة أحد الزر مثل هذا:

next.enabled = YES;

حاولت مع الذات. لكن لسوء الحظ ، أتلقى رسالة الخطأ هذه: خطأ: طلب "ممكّن" عضو في شيء ليس بنية أو نقابة

هل لديك أي فكرة عما يحدث هناك؟

ونعم لدي:

#import <UIKit/UIKit.h>

:)

استخدام:

[next setEnabled:YES];

لا يعطيني أي خطأ ولكن لا يزال لا يعمل ...

وأخيراً ، لأغراض توثيق هذه الطريقة بأكملها:

- (void)viewDidLoad {
    [super viewDidLoad];

     if (!self.currentLevel) {
          self.currentLevel = @"1";
     }

     NSArray *etape = [self.etapes objectForKey:self.currentLevel];
     if ([etape count] > 0) {
          self.navigationItem.title = [etape objectAtIndex:1];
          if ([etape count] > 1) {
               [next setEnabled:YES];
          }

     } else {
          self.navigationItem.title = @"Aucune étape";
     }
}

عندما أفعل:

NSLog(@"%@", [next class]);

يعود (خالية) ... أعتقد أنه من المفترض أن يكون uibarbuttonitem ...

يبدو أنه من المستحيل اللعب مع أي منافذ حتى لو لم أتلق أي أخطاء أثناء اللعب معهم ...

هل كانت مفيدة؟

المحلول

التي ينبغي أن تكون:

IBOutlet UIButton * next;
IBOutlet UIButton * previous;

نصائح أخرى

لست متأكدًا من جهاز iPhone SDK لأنني لا أستخدمه ، لكنك قمت بتمكين/تعطيل عناصر شريط الأدوات باستخدام الطريقة التالية. عادةً ما أستخدم تسمية الزر لتحديد الزر الذي أستهدفه.

-(BOOL)validateToolbarItem:(NSToolbarItem*)theItem {
    BOOL shouldEnable = YES;
    NSString* itemLabel = [theItem label];
    if ([itemLabel isEqualToString:@"next"]) {
        shouldEnable = NO;
    }
    return shouldEnable;
}
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top