Ios UIView未在iPhone应用程序中更新
我是iPhone应用程序开发新手,下面是ViewController.mIos UIView未在iPhone应用程序中更新,ios,objective-c,uiview,Ios,Objective C,Uiview,我是iPhone应用程序开发新手,下面是ViewController.m #import "ViewController.h" @interface ViewController () @end @implementation ViewController - (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view, typically from
#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
@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:UIViewController
{
IBUILabel*num_1;
IBUILabel*num_2;
IBUILabel*结果标签;
IBOutlet UITextField*textField;
整数_1;
整数_2;
NSString*验证_结果;
NSString*输入文本;
BOOL显示结果;
}
-(iAction)单击按钮结果:(id)发件人;
@结束
输入正确结果后,UIView应使用updateMyView函数进行更新,但不会发生
这里有人可以帮忙吗?尝试更改
viewdiload
中的num_1.text
,以确保您可以从UIViewController
访问该标签
因此,在viewDidLoad
中,只需输入如下内容
num1.text=@“从viewDidLoad更新”
确保已将num\u 1
和num\u 2
与UILabels
正确连接。您似乎尚未连接这些属性。首先,开始使用属性
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
@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},例如textField属性的self.textField
现在,转到Interface builder并将IBOutlet属性连接到正确的对象。(用右键单击文件所有者)只需移动
[self-updateMyView]如果中的语句不在范围内,请单击按钮结果:
函数
然后单击按钮时,它将更新视图
if (final_int_result) {
//result_label.text = @"Correct";
NSLog(@"Correct");
} else {
//result_label.text = @"Wrong";
NSLog(@"Wrong");
}
[self updateMyView];
您是否在clickButtonResult方法中设置了断点并单步执行,以确保a)它正在被调用,b)它正在执行您期望的操作?顺便说一句,使用[textField.text intergerValue]
可能比将结果转换为字符串并比较字符串更简单。使用断点查看是否调用了更新视图函数和clickresult什么是断点,我在这里没有被理解?这并不能真正回答这个问题-回答这个问题需要更多的信息,您提供的是一个合理的调试步骤,但是作为对问题的评论比回答要好。我得到了相同的错误,UIView没有更新错误是“线程1:断点1.1”要点是您应该将序列图像板中的UILabel
或UIButton
连接到`ViewController.h`文件中相应的变量或方法,使用辅助编辑器
,确保在行号之前的圆圈中有一个点