获取另一个控制器实例类

时间:2012-04-20 16:33:07

标签: iphone class get instance

我已经学会了如何将一个类传递给另一个类,但我还没有理解如何以另一种方式执行它。

示例:

假设我们在rootViewController中,在didSelectRowAtIndexPath中我们将播放列表的实例传递给someviewcontroller,如下所示:

SomeViewController *someViewController = [[SomeViewController alloc] initWithNibName:nil bundle:nil];

playlist = [arr objectAtIndex:indexPath.row];
someViewController.playlist = playlist;

现在这对于向前传递类实例非常有效,但是让我们在someViewController中说我想要rootViewController播放列表。

我将如何使用类似技术实现这一目标?谢谢你的帮助!

1 个答案:

答案 0 :(得分:1)

您应该查看委派模式:https://developer.apple.com/library/mac/#documentation/General/Conceptual/DevPedia-CocoaCore/Delegation.html

另请查看Apple的CoreDataRecipes示例代码: http://developer.apple.com/library/ios/#samplecode/iPhoneCoreDataRecipes/Listings/ReadMe_txt.html

您可以在示例代码中看到RecipeListTableViewController是RecipeAddViewController的委托,这样当RecipeAddViewController完成后,RecipeListTableViewController可以在RecipeDetailViewController中显示配方。

委派也有助于您的对象图,因为对委托的引用是一个弱链接,这意味着它不会保留您的委托。因此,通过使用委托模式,您可以确保不创建任何保留周期,ARC将为您处理内存管理。