我有一个作为ABPeoplePicker导航控制器代理的子类UIViewController。这个视图控制器在几种不同的情况下调用这个ABPeoplePicker,我遇到的问题是找出我正在响应哪种情况
- (BOOL)peoplePickerNavigationController:(ABPeoplePickerNavigationController *)peoplePicker shouldContinueAfterSelectingPerson:(ABRecordRef)personUIAlertView继承了UIView的tag属性来帮助解决这个问题,但是我在ABPeoplePickerNavigationController中找不到类似的属性。可可忍者是如何处理这样的情况的?是否剥离自定义委托?在视图控制器子类中摆弄一些布尔值?
发布于 2010-02-20 12:40:32
基本上,你有一些状态,你在问它属于哪里,对吧?不幸的是,答案是“这真的取决于状态”。
如果它与视图控制器的操作相关,我会说把它放在那里,并让视图控制器作为代理。
如果它不是真正相关的,并且整个委托可以移动到一个单独的对象中,那么最终可能会干净得多。很容易得到数百行长的噩梦控制器,这些控制器有几十种方法。将事物拆分成多个对象并使用组合模式会非常有帮助。
https://stackoverflow.com/questions/2300713
复制相似问题