0

[myMutableArray removeAllObjects]因此,每当按下按钮或选项卡视图发生更改时,我都会尝试删除数组中的所有对象。我知道对于一个按钮,我可以使用prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender,它可以工作。但是我如何对标签做同样的事情呢?

我这样做是因为我正在使用 Parse(一种 Web 后端服务),并且我正在查询用户的朋友并将其放在 tableview 上,但除非我从数组中删除所有对象,否则我会得到重复的名称。

任何帮助是极大的赞赏!!

4

2 回答 2

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];  
  }

希望这可以帮助

于 2013-09-15T12:29:42.997 回答
-1

您可以在视图重新出现时执行此操作,而不是在您离开时删除它们

-(void)ViewWillAppear:(BOOL)Animated

在我的一些应用程序中,我会检查

-(NSFetchedResultsController *)fetchedResultsController

将 fetchedResultsController 设置为 nil 将调用该函数

于 2013-09-15T12:34:33.340 回答