所以每当按下按钮或标签视图发生变化时,我都会尝试删除数组中的所有对象[myMutableArray removeAllObjects]
。我知道对于一个按钮,我可以使用prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
,它可以工作。但是如何使用标签执行相同操作?
我这样做是因为我正在使用Parse,一个Web后端服务,我正在查询用户的朋友并将其放在tableview上,但除非我从数组中删除所有对象,否则我会得到重复的名称。
非常感谢任何帮助!!
答案 0 :(得分:3)
您应该为UITabBarController
提供代理人。该委托应该实现方法- (void)tabBarController:(UITabBarController *)tabBarController didSelectViewController:(UIViewController *)viewController
。然后将代码放在那里。像这样:
- (void)tabBarController:(UITabBarController *)tabBarController didSelectViewController:(UIViewController *)viewController
{
[myMutableArray removeAllObjects];// if the delegate is the object holding reference to the array. otherwise put objects removal into a separate method and send this message from here
}
或类似,如果委托是另一个对象:
- (void)tabBarController:(UITabBarController *)tabBarController didSelectViewController:(UIViewController *)viewController
{
[myObj removeObjects];
}
- (void)removeObjects//provide this method for a class which holds myMutableArray
{
[myMutableArray removeAllObjects];
}
希望这有帮助
答案 1 :(得分:-1)
当您离开时,您可以在视图重新出现时执行此操作,而不是删除它们
-(void)ViewWillAppear:(BOOL)Animated
在我的一些应用程序中,我在
中检查重复项-(NSFetchedResultsController *)fetchedResultsController
将fetchedResultsController设置为nil将调用函数