ios - UIView 未在 iPhone App 中更新

标签 ios objective-c uiview

我是iPhone App开发新手,下面是ViewController.m

#import "ViewController.h"

@interface ViewController ()

@end

@implementation ViewController

- (void)viewDidLoad
{
    [super viewDidLoad];
    // Do any additional setup after loading the view, typically from a nib.

    [self updateMyView];

}

- (IBAction)clickButtonResult:(id)sender
{
    enteredText = [textField text]; // Or textField.text

    NSLog(@"Number 1 : %i", number_1);
    NSLog(@"Number 2 : %i", number_2);
    NSLog(@"Entered Text is %@", enteredText);

    int NUM_RESULT = number_1 + number_2;
    verify_result = [NSString stringWithFormat:@"%i", NUM_RESULT];

    NSLog(@"Verify Result : %@", verify_result);
    NSString *final_result = [NSString stringWithFormat:@"%d", [enteredText isEqualToString:verify_result]];
    int final_int_result = [final_result integerValue];


    if (final_int_result) {
        //result_label.text = @"Correct";
        NSLog(@"Correct");
        [self updateMyView];
    } else {
        //result_label.text = @"Wrong";
        NSLog(@"Wrong");
    }
}

- (int)getRandomNumberBetween:(int)min maxNumber:(int)max
{
    return min + arc4random() % (max - min + 1);
}

- (void) updateMyView
{
    number_1 = [self getRandomNumberBetween:10 maxNumber:99];
    number_2 = [self getRandomNumberBetween:10 maxNumber:99];

    num_1.text = [NSString stringWithFormat:@"%i", number_1];
    num_2.text = [NSString stringWithFormat:@"%i", number_2];
}

- (void)didReceiveMemoryWarning
{
    [super didReceiveMemoryWarning];
    // Dispose of any resources that can be recreated.
}

@end

和ViewController.h

#import <UIKit/UIKit.h>

@interface ViewController : UIViewController
{
    IBOutlet UILabel *num_1;
    IBOutlet UILabel *num_2;
    IBOutlet UILabel *result_label;
    IBOutlet UITextField *textField;

    int number_1;
    int number_2;
    NSString *verify_result;
    NSString *enteredText;
    BOOL display_result;
}

- (IBAction)clickButtonResult:(id)sender;

@end

输入正确的结果后,UIView 应该使用 updateMyView 函数更新,但它没有发生。

有人可以帮忙吗??

最佳答案

首先,开始使用 Properties。

ViewController.h

@interface ViewController : UIViewController

@property (nonatomic, weak) IBOutlet UILabel *num_1;
@property (nonatomic, weak) IBOutlet UILabel *num_2;
@property (nonatomic, weak) IBOutlet UILabel *resultLabel;
@property (nonatomic, weak) IBOutlet UITextField *textField;

@property (nonatomic) NSInteger number_1;
@property (nonatomic) NSInteger number_2;

@property (nonatomic, strong) NSString *verifyResult;
@property (nonatomic, strong) NSString *enteredText;
@property (nonatomic) BOOL displayResult;

- (IBAction)clickButtonResult:(id)sender;

@end

在 ViewController.m 代码中使用 self.{name of property},例如 self.textField 作为 textField 属性。

现在,转到界面构建器并将 IBOutlet 属性连接到正确的对象。 (在文件所有者上单击右键)

关于ios - UIView 未在 iPhone App 中更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23027889/

相关文章:

objective-c - iOS:从 UIView 生成 PDF 使文本模糊

ios - 使用 Xcode 8 转换为 Swift 3

iOS 最佳性能持久化数据解决方案?

ios - 为什么我不能使用 prepareForSegue 传递值?

ios - UIButtons 在 ScrollView 中不起作用

ios - 当 iPhone 方向改变时更改 UIViews 位置

ios - 当父 UIViewController 设置为 RootViewController 时,UIView 不会成为第一响应者

ios - Swift PageView 滚动后最新图像的一部分保留在边框中

ios - 为什么当我在 uiscrollview 顶部添加对象时,即使我将所有四个约束都设置为 0,对象也会下降一点?

objective-c - 在多线程应用程序的 AFNetworking 中测量响应时间