players
我在视图控制器中 有一个数组SearchViewController
,并且还有许多其他视图控制器,它们具有文本字段,例如:textFieldOne
和textFieldTwo
.
如何从视图控制器以外的视图控制器将文本插入textFieldOne
到数组中?players
SearchViewController
players
我在视图控制器中 有一个数组SearchViewController
,并且还有许多其他视图控制器,它们具有文本字段,例如:textFieldOne
和textFieldTwo
.
如何从视图控制器以外的视图控制器将文本插入textFieldOne
到数组中?players
SearchViewController
通过在 SearchViewController 中设置播放器数组,您违反了 MVC 设计模式,您可以看到这如何使您的生活复杂化。如果您遵循该模式,您将在单独的模型类中拥有您的玩家数组。您应该创建此类的一个实例,然后将其传递给需要与之交互的各种视图控制器。如果您在模型属性上使用键值观察 (KVO),则可以在其中一个更改视图控制器时通知所有视图控制器。因此,如果视图控制器 A 添加了一个新玩家,例如,视图控制器 B 可以更新其表视图列表中的玩家名称。
最简单的方法是使用 NSNotification 和 userInfo。
在需要进行更新的视图控制器中添加观察者。
[[NSNotificationCenter defaultCenter]addObserver:self selector:@selector(updateArray:) name:@"updateArray" object:nil];
写方法,
-(void)updateArray:(NSNotification*)notif
{
[[NSNotificationCenter defaultCenter]removeObserver:self name:@"updateArray" object:nil];
NSDictionary *dictionary = [notif userInfo];
[self.arrPlayers addObject:dictionary];
}
然后,在需要从 -> 调用更新的任何地方发布通知
NSString *notificationName = @"updateArray";
NSString *key = txtField.text;
NSDictionary *dictionary = [NSDictionary dictionaryWithObject:orientation forKey:key];
[[NSNotificationCenter defaultCenter] postNotificationName:notificationName object:nil userInfo:dictionary];
试试看 !!