我有三個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:對不起我英文不好! :(
很抱歉,但它不工作。 –
什麼也不行,到底是什麼?檢查'viewDidLoad'初始化後,調用' ',它被稱爲? – dreamzor