2013-03-19 110 views
1

我想从另一个UIView重新加载UITableview的数据。从另一个视图重新加载数据uitableview

(该UITableviewListNoteViewController

呼叫我从DetailViewController(其他的UIView)做的是:

ListNoteViewController *controller = [[ListNoteViewController alloc] initWithNibName:@"ListNoteViewController" bundle:[NSBundle mainBundle]]; 

[controller.TableNotes reloadData]; 

但没有任何反应。请有人能帮助我吗?

高级感谢

+1

你可以使用自定义代表来实现这个 – Vinodh 2013-03-19 12:41:22

+0

看到我的答案。希望这个概念很明确,并且随时问你是否有更多疑问 – 2013-03-19 12:49:57

回答

3

不会发生任何事情,因为你正试图重新加载的tableview是尚未创建!UITableView,UILabel等UI元素将只在加载特定UIViewController的视图后才会创建。这里你只是初始化了viewcontroller。

所以,你应该在

 -(void)viewDidAppear:(BOOL)animated 
    { 
     [self.TableNotes reloadData]; 
    } 

OR

-(void)viewWillAppear:(BOOL)animated 
    { 
     [self.TableNotes reloadData]; 
    } 
您ListNoteViewController的

写这篇文章。

这是您的代码问题。并且,如果ListNoteViewController已经在堆栈中,即如果您已经加载了相同的viewcontroller并且正在尝试重新加载tableview,那么您可以使用自定义代理来实现相同。您可以在这里看到how to add a delegate

3

您可以使用代表。

在DetailViewController.h

@property (nonatomic, strong) id Delegate; 

在ListNoteViewController.m

-(void)myTVReloadMethod { 
[myTable reloadData]; 
} 

而且当你要DetailViewController

DetailViewController *dvc = [[DetailViewController alloc] initWithNibName:@"DetailViewController" bundle:[NSBundle mainBundle]]; 
dvc.Delegate = self; 
[self.navigationController pushViewController:dvc animated: yes]; 

在任何方法DetailViewController

[delegate performSelector:@selector(myTVReloadMethod) withObject:nil]; 
+0

嗨。我正在使用MFSideMenu。我无法将数据传递给menuViewController。这包含tableview中的列表,因为menuviewcontroller已经加载并且在登录细节之前调用tableview。 – 2017-02-06 12:04:37

相关问题