-1

次のように目的 Cのラベルを変更したい:

「車」という名前のボタンを押すと、「pushedCar」というラベルが表示されます。今はこのように見えますが、静的です...

if ([buttonName isEqualToString:@"Car"]) {
        self.pushedCar.hidden = NO;}

次のようなものを書くにはどうすればよいですか:

if ([buttonName isEqualToString:@"Car"]) {
        self.pushed%@.hidden , buttonName = false;}

ちょっとばかげた例ですが、複雑すぎてここに書き留めるには必要です。

前もって感謝します。

マイケル

4

6 に答える 6

1

Car、Van、Bus などのすべてのボタンのタイトルを変更してから、これをすべてのメソッド内で修正します。

-(IBAction) buttonPressed:(UIButton *) pressedButton{
    NSString *buttonName = pressedButton.titleLabel.text;
    UILabel *label = [self valueForKey:[NSString stringWithFormat:@"pushed%@", buttonName]];
    label.hidden = NO;
}
于 2013-02-26T12:02:55.710 に答える
0

私がそれを正しく理解しているなら、あなたは異なるボタンとラベル(例えば、車、馬、猫)が欲しいです。

その場合、キーがbuttonName(@ "Car")であり、そのオブジェクトがラベルであるNSDictionaryを作成します。

次に、次のように書くことができます。

UILabel *label = [myDictionary objectForKey:buttonName];
label.hidden = NO; // or label.hidden = !label.hidden;

お役に立てれば!

于 2013-02-26T11:46:24.170 に答える
0

このような?

if ([ButtonName isEqualToString:@"Car"]) {
        self.pushedCar.hidden = !self.pushedCar.hidden;
}
于 2013-02-26T11:43:14.877 に答える
0

KVC を使用する

id name = nil
if(myButtonCurrentTitle isEqualTo:@"Car"]) name = @"Car";


assert(name);
UILabel *label = [self valueForKey:[NSString stringWithFormat:@"pushed%@", name]];
assert([label isKindOfClass:[UILabel class]]);
于 2013-02-26T11:43:38.163 に答える
0

「文字列に関連するオブジェクトを取得するにはどうすればよいか」という意味であれば、おそらくボタンを NSDictionary に入れるのが最も簡単なので、次のようなことができます

MyButton *button = [buttonDict objectForKey:@"Car"];

しかし、正直なところ、あなたのコード例はあまり意味がないので、適切な例を書く方法を知るのは難しいと思います.

于 2013-02-26T11:43:50.210 に答える
0

Key Value Codingを使用して、任意の文字列に基づいてボタン インスタンスを取得しようとしていると思います。

最初に、プロパティを使用してボタン インスタンスを公開する必要があります。

@interface MyClass : UIView
{
    // These are connected using Interface Builder
    IBOutlet UIButton *carButton;
    IBOutlet UIButton *busButton;
    IBOutlet UIButton *bikeButton;
}

@property (string, nonatomic, readonly) UIButton *carButton;
@property (string, nonatomic, readonly) UIButton *busButton;
@property (string, nonatomic, readonly) UIButton *bikeButton;

@end

そして、次を使用してボタンのインスタンスを取得できます。

NSString *thing = "@car";
UIButton *button = [self valueForKey:[NSString stringWithFormat:@"%@Button", thing]];
[button setHidden:YES];
于 2013-02-26T11:50:42.990 に答える