2012-09-24 36 views
0

我有三個UIViewController嵌入在選項卡欄控制器。 在第二個視圖中有UITextView和UISwitch,它們的值存儲在NSUserDefault中。 在第三個視圖中有一個UItableView,它的NSArray存儲在一個NSUserDefault中。 現在在第一個視圖中我有一個按鈕,當我按下這個按鈕時,我需要獲取UISwitch,UITextView和UITableView數組的值。 問題是,當我打開我的應用程序時,第二個和第三個視圖的「viewDidLoad」方法不會執行,並且以這種方式UISwitch,UITextView和UITableView的值不會從其NSUserDefaults加載。 這個按鈕的方法是:加載設置iPhone

- (IBAction)send:(id)sender 
{ 
    if ([MFMessageComposeViewController canSendText]) { 
     MFMessageComposeViewController *sms = [[MFMessageComposeViewController alloc] init]; 

     NSString *textToShow = [self.delegate textToShow]; 

     if ([self.delegate showCoordinates] == TRUE) { 
      NSLog(@"YES, I want Coordinates"); 
     } 

     sms.messageComposeDelegate = self; 
     sms.body = textToShow; 
     sms.recipients = [self.numberSource giveMeNumbers]; 
     [self presentModalViewController:sms animated:YES]; 

    } 
    else 
    { 
     UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Houston, We have a problem" message:@"You can't send SMS with this device" delegate:self cancelButtonTitle:@"OK" otherButtonTitles:nil, nil]; 
     [alert show]; 
    } 
} 

的問題是,

NSString *textToShow = [self.delegate textToShow]; 
NSString *textToShow = [self.delegate textToShow]; 
sms.recipients = [self.numberSource giveMeNumbers]; 

回報「無」,因爲第二個和第三個「viedDidLoad」的方法還沒有被調用。 如果我點擊標籤欄控制器中的第二個和第三個視圖,將調用「viewDidLoad」方法,它們從NSUserDefaults中獲取值,當我按下第一個視圖上的按鈕時,它將起作用!

我該如何解決這個問題?

PS:對不起我英文不好! :(

回答

1

嘗試用init..方法首先加載你的ViewControllers,它會叫他們viewDidLoad

+0

很抱歉,但它不工作。 –

+0

什麼也不行,到底是什麼?檢查'viewDidLoad'初始化後,調用' ',它被稱爲? – dreamzor