gpt4 book ai didi

iphone - 将 NSString 从一个 ViewController 传递到另一个 VC NSMutableArray

转载 作者:行者123 更新时间:2023-11-28 19:16:35 25 4
gpt4 key购买 nike

我是 iOS 开发新手,我想了解 NSMutableArray。具体来说,我想将 NSString 值从一个 VC 传递给属于另一个 View Controller 的 NSMutableArray。我还希望 NSMutableArray 在其 View 上填充 UITableView。任何想法如何做到这一点?例如,我有用户从第一个 View 中触发的此操作

- (IBAction)addToFav:(id)sender {  
}

我想将 NSString myBookString 的值传递给第二个 View 中的 NSMutableArray 数组。这个任务相当简单,但我不太明白为什么你不能在提到的 - (void)insertObject:(id)anObject atIndex:(NSUInteger)index 方法之外将值传递给 NSMutableArray在 Apple 的引用文档中。提前致谢!

编辑:我的观点是同时属于 UITabBar 和 UINavigationController 的不同 VC

最佳答案

您需要在两个 Controller 之间进行通信。有几种解决方案。选择以下之一。我推荐委托(delegate)。

来自 http://www.hollance.com/

当你有两个对象 A 和 B,比如两个 View Controller ,你想互相交谈时,你可以从以下选项中选择:

NSNotificationCenter。

  • 这是匿名的一对多通信。对象 A 向 NSNotificationCenter 发布一个通知,然后将它分发给任何其他监听该通知的对象,包括对象 B。A 和 B 不需要知道彼此的任何信息,所以这是一个非常松散的耦合。也许有点太松了……

KVO(键值观察)。

  • 一个对象观察另一个对象的属性。这是一个非常紧耦合,因为对象 B 现在直接窥视对象 A。KVO 的优点是对象 A 不必知道这一点全部,因此不需要发送任何通知——KVO 机制在幕后处理这个问题。

直接指针。

  • 对象A有一个指向对象B的指针并直接向它发送消息当有趣的事情发生时。这是最紧密的耦合可能是因为 A 和 B 没有彼此就无法运作。在里面对于 View Controller ,您通常希望避免这种情况。

代表

  • 对象 B 是对象 A 的委托(delegate)。在这种情况下,对象 A 做对对象 B 一无所知。它只知道某个对象执行其委托(delegate)的角色,它会愉快地发送消息给那个委托(delegate),但它不知道——也不关心——这是对象B.委托(delegate)模式通常是首选的通信方式之间的 View Controller ,但它需要一些工作来设置。

block 。

  • 基本上与委托(delegate)相同的方法,除了对象 B 现在给对象 A 一个或多个 block (闭包)来执行时某些事件发生。没有正式的委托(delegate)协议(protocol),并且对象 A 唯一能看到对象 B 的是它所在的 block 给。

关于iphone - 将 NSString 从一个 ViewController 传递到另一个 VC NSMutableArray,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11677085/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com