0
這一次經過長達有點複雜〜登錄屏幕+表視圖中的一個選項卡控制器=沒有顯示初始登錄
明白了驗證,從異地服務器的用戶名/口令的登錄頁面。服務器返回一個用戶ID,然後在我的應用程序中使用它來查找匹配的plist文件。如果還沒有一個,它應該爲樣本數據爲該用戶創建一個新的plist。這一切工作,但沒有任何顯示,除非我終止,然後重新啓動應用程序。
我認爲問題是tableview與模態登錄頁面同時加載。
下面是我的登錄頁面代碼:
-(void)connectionDidFinishLoading:(NSURLConnection *)connection{
[fIndicator stopAnimating];
//convert data from server to a string
NSString *xmlReturn = [[NSString alloc] initWithData:xmlData encoding:NSUTF8StringEncoding];
//notify user if username/pass failed
if ([xmlReturn isEqualToString:@"0"] ||[xmlReturn isEqualToString:@"No"]) {
UIAlertView *alert =[[UIAlertView alloc]initWithTitle:@"Login Fail" message:nil delegate:nil cancelButtonTitle:@"Retry" otherButtonTitles:nil];
[alert show];
[alert release];
}
//if server authenticates username/pass
else {
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
//set user ID from server into Defaults for app use
[defaults setObject:xmlReturn forKey:@"AppPref_UI"];
[defaults synchronize];
//this is where I think the tableview needs to be told to reload
//but no idea how to reference that view controller from
//this modal view controller
[??? reloadData];
[self dismissModalViewControllerAnimated:YES];
}
[xmlReturn release];
}
它將有助於獲得更多有關您的視圖層次結構的信息。 – 2011-04-06 22:08:47
該應用程序的主要部分使用帶有2個視圖的選項卡視圖控制器:(A)具有表格視圖的Nav控制器,可深入到詳細的視圖和(B)顯示用戶信息的簡單視圖。如果用戶第一次登錄或已從應用程序註銷,則登錄頁面將從導航控制器以模態方式調用。 – Jalakoo 2011-04-06 22:13:27
好的,解決了,感覺不那麼聰明。如果其他人碰巧遇到這個完全相同的問題,這裏是我的解決方案:替換「[??? reloadData];」 (你的函數或代碼來創建一個新的plist文件)。我的功能是「[腳本aCheckforSavedScripts];」如果沒有看到我爲此構建的全部課程和功能,這是沒有意義的,但它應該讓你知道要走向何方。無論如何,如果在這裏生成新的plist,當登錄模式視圖消失時,tableview將自動更新。 – Jalakoo 2011-04-06 22:56:18