0

私はObjective-CとXcodeが初めてです。

最初のプログラム「Hello Word」を実行しましたが、「hello Word」メッセージを別のメッセージに変更したいと考えています。これが私のコードの例です:

.h

#import <UIKit/UIKit.h>    
@interface ViewController : UIViewController {

 IBOutlet UILabel * label;
 IBOutlet UIButton * boton;
 }
 -(IBAction)click:(id)sender;
 @end

.m

 #import "ViewController.h"

 @interface ViewController ()

 @end

 @implementation ViewController

 -(IBAction)click:(id)sender{
     label.text = @"hello Word" ;
     label.text = @"here is the second string"; 
      // i would like when i touch again the button to change to this string
 }
4

3 に答える 3

1

2つを切り替えたい場合は、条件付きを試すことができます

if ([label.text isEqualToString:@"hello World"]) {
     label.text = @"here is the second string";
} else {
   label.text = @"hello World";
}

NSString equivalence のテストに注意してくださいisEqualToString:。より一般的な形式isEqual:も機能しますが、NSString オブジェクトを扱っていることがわかっている場合は、前者の方が効率的であると見なされます。

それがあなたの求めているものではない場合は、ロジックで遊ぶことができます-たとえば

NSString* firstString = @"hello world";
NSString* secondString = @"here is the second string";

if ([label.text isEqualToString:firstString] 
{
     label.text = secondString;
} else if ([label.text isEqualToString:secondString] {
   return;
} else {
  label.text = firstString;
}

または、@HotLicks が示唆するように整数フラグを使用します。ロジックを操作するには多くの方法がありますが、いずれも Objective-C に固有のものではありません。

于 2013-02-28T19:19:47.050 に答える
0

これを行う方法は、NSMutableArrayを作成することです。これを行うためのより良い方法は、ボタンとラベルを用意することです。ボタンを押すと、ラベルに目的のテキストが表示されます。

これがあなたがそれをすることができる最良の方法です:

.hファイル

@interface ViewController : UIViewController

{

int currentTextIndex;

// The model objects

NSMutableArray *text;

// The view objects

IBOutlet UILabel *labelName;

}

- (IBAction)showText:(id)sender;

.mファイル

@interface ViewController ()

@end

@implementation ViewController

- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
    // Call the init method implemented by the superclass
    self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
    if (self) {
     text = [[NSMutableArray alloc] init];

// Add text to the arrays
    [text addObject:@"Whatever text you want in here];

    [text addObject:@"other text you want in here"];

}

return self;

- (IBAction)showText:(id)sender
{
    //Step to the next statement
    currentQuestionsIndex++;

    //Am I past the last statement?
    if (currentTextIndex == [text count])
    {

        //Go back to the first statement
        currentTextIndex = 0;
    }
//Get the string at that index in the text array
    NSString *statement = [text objectAtIndex:currentTextIndex];

    //Log the string to the console
    NSLog(@"displaying text: %@", text);

    //Display the string in the question field
    [labelName setText:question];


}

これが機能するかどうか教えてください。少しずれているかもしれません

于 2013-03-01T02:37:16.657 に答える