更改按钮标签

时间:2013-04-20 09:13:05

标签: ios objective-c ipad

我是iOS应用开发的新手。目前我正在开发一个非常简单的应用程序,它在屏幕上显示两个单词,用户选择一个,而应用程序只输出你选择的x。

我创建了两个plists,并将它们加载到一个数组中并将它们随机化在数组中。在我看来,我有两个按钮,我希望在它们上面显示单词。但是,我有两个问题.. 1。我希望应用程序启动时按钮上的标签会发生变化。因此用户无需点击按钮或任何东西。 2.我希望array_1中的一个随机单词(从plist加载)出现在随机按钮上。 button_1或button_2与列表array_2相同。

这是我到目前为止所做的。 (在论坛的帮助下(:)

- (IBAction)buttonpressed:(id)sender {

    // Load contents of plist onto array

    NSString *path = [[NSBundle mainBundle] pathForResource:@"wordsOne" ofType:@"plist"];
    NSMutableArray *words = [NSMutableArray arrayWithContentsOfFile:path];

    //shuffle them using Fisher–Yates shuffle algorithm

    for (int i = words.count-1; i>=0; i--) {
        int r = arc4random_uniform(words.count);
        [words exchangeObjectAtIndex:i withObjectAtIndex:r];
    }

    // assign word to the button
    for (int j =0; j<_WordButton.count; j++) {
        UIButton *button = [_WordButton objectAtIndex:j];
        button.titleLabel.text = [words objectAtIndex:j];
    }

}

上面的代码中有明显的缺陷,例如它只使用一个plist,并且它不会随机显示两个按钮上的单词。

3 个答案:

答案 0 :(得分:4)

您可以使用以下代码设置UIButton标题:

[button setTitle:titleString forState:UIControlStateNormal];

答案 1 :(得分:2)

要实现您的目标,您必须为.xib文件上的按钮创建一个IBOutlet。您可以使用一个简单的Xcode快捷方式来创建IBOutlet代码并同时从.xib文件到代码的连接:

  1. 在Xcode中打开.xib文件,该文件将使用Interface Builder显示图形文件。
  2. 在Xcode右上方的工具栏中有一个图标,可让您切换不同的模式,选择“助手编辑器”。 Interface Builder将滑过以与代码文件共享窗口,这应该会自动选择ViewController.h 工具栏应如下所示:
    enter image description here

  3. 在代码中插入一些花括号:

  4. `

    @interface CustomViewController : UIViewController {
    // This is where you will control-drag to from the Interface Builder to have it create an IBOutlet to the button for you
    }
    
    // Your already set-up IBAction Method
    - (IBAction)buttonpressed:(id)sender
    @end
    

    `

    1. 控制 - 从希望标签更改的按钮拖动到.h文件中的花括号之间的区域:
      enter image description here

    2. 将出现一个新对话框。确保设置如下:
      一个。连接= IBOutlet
      湾名称=(无论你想叫什么按钮,你都使用了'_wordButton') C。 Type = UIButton
      d。存储=弱

    3. enter image description here

      1. 现在在您的操作方法- (IBAction)buttonpressed:(id)sender和您的应用程序中:didFinishLaunchingWithOptions(要在启动应用程序时自动将单词加载到标签中),您可以使用以下内容设置按钮标题:
      2. `

        // Create a string from the word that you pull out of the plist file
        NSString *labelWord = ???;
        
        // Set the label of the button
        [_wordLabel setTitle:word forState:UIControlStateNormal];
        

        `

答案 2 :(得分:0)

这样做:

-(void)viewDidLoad{
[self setnewtitle];

}

-(void)setnewtitle{
NSString *pathone = [[NSBundle mainBundle] pathForResource:@"wordsOne" ofType:@"plist"];
    NSMutableArray *wordsOne = [NSMutableArray arrayWithContentsOfFile:pathone];
NSString *pathtwo = [[NSBundle mainBundle] pathForResource:@"wordsOne" ofType:@"plist"];
    NSMutableArray *wordsTwo = [NSMutableArray arrayWithContentsOfFile:pathtwo];
int words = "the number of objects(words) in your plist";
int randombutton = arc4random() % 2;
int randomplist = arc4random() % 2;
int randomWord = arc4random() % words;

if (randombutton==0){
if (randomplist==0){
[[_WordButton objectatIndex:randombutton] setTitle:[wordsOne objectatIndex:randomWord]];
} else {
[[_WordButton objectatIndex:randombutton] setTitle:[wordsTwo objectatIndex:randomWord]];

}
}else {
if (randomplist==0){
[[_WordButton objectatIndex:randombutton] setTitle:[wordsOne objectatIndex:randomWord]];
} else {
[[_WordButton objectatIndex:randombutton] setTitle:[wordsTwo objectatIndex:randomWord]];

}
}



}

请确保包含按钮的数组中的按钮也已初始化并已分配 如果您有任何疑问,请随意提问