2017-04-14 82 views
0

我在更新視圖中的細節時遇到小問題。如何在成功更新後重新加載視圖以更改詳細信息。更新細節後需要重新加載視圖目標C

以下是我的代碼。請幫我找出解決方案。提前致謝。

- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 
} 

-(void)viewWillAppear:(BOOL)animated 
{ 
    [self viewDidLoad]; 
    [super viewWillAppear:animated]; 
    [self.view setNeedsDisplay]; 

    appDelegate = (AppDelegate *)[[UIApplication sharedApplication]   delegate]; 
    profilearray=[[NSMutableArray alloc]initWithObjects:@"First Name:",@"Last Name:",@"Date of Birth:",@"Email:",@"Gender:",@"Address:",@"Country:",@"State:",@"City:",@"ZipCode:",@"Phone:",@"Guardian/Caretaker Details:",@"Name:",@"Relationship:",@"Email:",@"Doctor Details:",@"Name:",@"Phone:",@"Email:",@"Insurance Details:",@"Name:",@"Email:",nil]; 
} 
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView { 

    return 1; 

} 


- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section { 

    return [profilearray count]; 
} 
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { 

    static NSString *CellIdentifier = @"Cell"; 
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier]; 
    if (cell == nil) 
    { 
     cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:CellIdentifier]; 

    } 
    cell.textLabel.text = [profilearray objectAtIndex:indexPath.row]; 
    if(indexPath.row==0) 
    { 
     cell.detailTextLabel.text=[[NSUserDefaults standardUserDefaults] stringForKey:@"FirstName"]; 
    } 

    if(indexPath.row==1) 
    { 
     cell.detailTextLabel.text=[[NSUserDefaults standardUserDefaults] stringForKey:@"LastName"]; 
    } 
    if(indexPath.row==2) 
    { 
     cell.detailTextLabel.text=[[NSUserDefaults standardUserDefaults] stringForKey:@"DOB"]; 
    } 
    if(indexPath.row==3) 
    { 
     cell.detailTextLabel.text=[[NSUserDefaults standardUserDefaults] stringForKey:@"Email"]; 
    } 
    if(indexPath.row==4) 
    { 
     cell.detailTextLabel.text=[[NSUserDefaults standardUserDefaults] stringForKey:@"Gender"]; 
    } 
    if(indexPath.row==5) 
    { 
     cell.detailTextLabel.text=[[NSUserDefaults standardUserDefaults] stringForKey:@"Address"]; 
    } 
    return cell; 
} 
+0

的tableview細胞後要重新加載您的看法請確認 –

+0

是的,在我的編輯個人資料時更新按鈕被點擊並重定向到UIView的,有認爲應被重新加載並且細節應該被更新 – Rajeev

回答

0

使用[的tableView reloadData]用於更新的tableview

0

簡單使用此不需要查看刷新或重新加載

-(void)viewWillAppear:(BOOL)animated 
{ 
    [tableView reloadData] 
    [super viewWillAppear:animated]; 
} 
0
  • 你的數據源陣列profilearray不斷得到重新分配每次出現視圖時都會有相同的值。也許在viewDidLoad中初始化一次。

  • 更新數組後,使用[tableView reloadData]重新加載表視圖。

  • 請不要自行撥打viewDidLoad,現在擺脫setNeedsDisplay

0

只要使用它。

- (void)viewDidLoad 
    { 
     [super viewDidLoad]; 
     appDelegate = (AppDelegate *)[[UIApplication sharedApplication] delegate]; 
     profilearray=[[NSMutableArray alloc]initWithObjects:@"First Name:",@"Last Name:",@"Date of Birth:",@"Email:",@"Gender:",@"Address:",@"Country:",@"State:",@"City:",@"ZipCode:",@"Phone:",@"Guardian/Caretaker Details:",@"Name:",@"Relationship:",@"Email:",@"Doctor Details:",@"Name:",@"Phone:",@"Email:",@"Insurance Details:",@"Name:",@"Email:",nil]; 
     [tableView reloadData]; 
    } 

    -(void)viewWillAppear:(BOOL)animated 
    { 
     [super viewWillAppear:animated]; 
    } 
0
  • profilearray: - 也許這是你在哪裏得到的tableview中的數據,並存儲在其中的數據
  • viewWillAppear中的數組: - 當的觀點是出現這種方法被稱爲
  • [tableView_Outlet reloadData]: - 這種方法刷新你的tableview用新的數據

因此,在這種情況下不調用viewWillAper因爲這不是做 求p標準方式oint您的數據進行更新,然後稱之爲「reloadData」 For more about viewWillApear hit 感謝

相關問題