2014-04-12 34 views
0

我是新iPhone應用程序的開發,下面是ViewController.m的UIView在iPhone應用程序不更新

#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函數,但它沒有發生。

任何人都可以在這裏幫助?

+1

有你在clickButtonResult方法設置一個斷點,並通過單步,以確保一)它被稱爲和b)它是做你期待什麼?順便說一句,使用'[textField.text intergerValue]'可能更簡單,而不是將結果轉換爲字符串並比較字符串。 – Paulw11

+0

看看是否您更新視圖的功能和clickresult通過使用斷點 – iOSDeveloper

+0

什麼斷點,我沒有得到理解這裏叫什麼? – Bangaram

回答

0

嘗試更改num_1.textviewDidLoad以確保您可以從UIViewController訪問該標籤。

所以在viewDidLoad,只是把像

num1.text = @"Updated from viewDidLoad"

+2

這並沒有真正回答這個問題 - 需要更多的信息來回答這個問題,和你提供了一個合理的調試步驟,但它會更好地作爲一個問題的評論比答案 – Paulw11

0

確保您已連接num_1num_2UILabels正常。看起來你沒有連接這些。

1

首先開始使用屬性。

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.textField爲textField屬性。

現在,進入界面生成和IBOutlet中的屬性連接到正確的對象。 (點擊右按鈕文件的所有者)

0

只是移動[self updateMyView];if報表之外的clickButtonResult:功能 那麼這將更新視圖中單擊按鈕時。

if (final_int_result) { 
    //result_label.text = @"Correct"; 
    NSLog(@"Correct"); 

} else { 
    //result_label.text = @"Wrong"; 
    NSLog(@"Wrong"); 
} 
[self updateMyView]; 
+0

我得到相同的錯誤和UIView不更新 錯誤是 「線程1:斷點1.1」 – Bangaram

+0

也許你可以粘貼更多的錯誤日誌 – George

+0

主要的一點是,你應該'connect'的'UILabel'或'UIButton'在'storyboard'在'ViewController.h'文件中的對應變量或方法,使用'助理editor',請確保有一個行號之前的圓圈中的圓點 – George

相關問題