【问题标题】:how to get its own view controller inside itself?如何在自身内部获取自己的视图控制器?
【发布时间】:2012-07-05 15:39:14
【问题描述】:
@interface RecentPhotosViewController () <PhotoViewControllerDelegate>

- (void)viewDidLoad
{
    [super viewDidLoad];
    [[self.tabBarController.viewControllers objectAtIndex:1] setDelegate:self];
}

RecentPhotosViewController 是一个实现委托的 tableviewcontroller。

我想在 vieDidLoad() 中将 self(RecentPhotosViewController) 设置为委托,但是当我尝试键入:self.setDelegate 时发现 self 没有这个 setDelegate 方法,然后我尝试了这个:[[self. tabBarController.viewControllers objectAtIndex:1] setDelegate:self];(这个tableview是tabBarControllers的viewcontrollers之一。

然后我得到一个错误:[RecentPhotosViewController setDelegate:]: unrecognized selector sent to instance 0xc939960.我不知道如何解决这个问题。

【问题讨论】:

  • 试过parentViewController?
  • 刚试过parentViewController,还是调用不了setDelegate方法。为什么?视图控制器不能调用 setDelegate 方法吗?很奇怪,我看到你可以在 prepareforsegue 中调用它:segue.destinationViewController setDelegate。
  • 但是你想自己作为代表的对象是什么类?
  • RecentPhotosViewController 就是一个 talbeviewcontroller。
  • 但是你想设置self.delegate = self?

标签: iphone objective-c xcode delegates cs193p


【解决方案1】:

这样做:

@interface RecentPhotosViewController

//etc.

@property (nonatomic, assign) id delegate;

@end

@implementation RecentPhotosViewController

// etc.

@synthesize delegate;

@end

【讨论】:

  • .....我已经在委托中做到了。我只是无法将自己设置为代表。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-09-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多