我有一个在我的一个班级上调用的块:
__weak BContactsViewController * weakSelf = self;
_searchViewController.usersSelected = ^(NSArray * users) {
// Do something
};
我现在正在创建另一个包含不同功能的UIViewController(从社交媒体搜索添加用户),但也返回要添加到应用程序的用户。
虽然我可以为我的第二个vc重复这个代码,但如果我增加了vc的数量,这个解决方案将无法很好地扩展。出于这个原因,我试图使用以下代码:
UIViewController * vc = type == bSearchTypeNameSearch ? _searchViewController : _customSearchViewController;
__weak UIViewController * weakSelf = self;
vc.userSelected = ^(NSArray * users) {
// Do something
};
两个视图控制器都会在其中包含块代码,因此可以返回并调用我想要的代码。
此代码虽然会产生错误:
Property 'userSelected' not found on object type 'UIViewController'
我不知道这样的事情是否可行。我搜索过谷歌和Stackoverflow,但很难清楚地表达这个问题,似乎很少有这样的细节。