从UIViewcontroller问题调用UIView的方法?

时间:2009-12-21 11:39:25

标签: iphone

我做了以下... tran是一个UIView ... doSomething是UIView中的一个方法。但我不能 从viewdidload调用该方法?有什么帮助吗?

- (void)viewDidLoad 

tran *m_view = [[tran alloc] initWithFrame:CGRectMake(0, 0, 320, 480)];
[self.view addSubview:m_view];
[m_view release];
tran *s = (tran *)self.view;
[s doSomthing];
[super viewDidLoad];

}

1 个答案:

答案 0 :(得分:2)

  1. 为了便于阅读,您的UIView子类应大写为Tran(类名称已大写)
  2. 您正在通过m_view
  3. -addSubview:添加到视图控制器的视图中
  4. 因此,视图控制器视图有一个subviews数组,该数组包含Tran *类型的对象实例
  5. 但是,使用-addSubview:或通过(Tran *)投射都不会使视图控制器视图类型为Tran
  6. 视图控制器的视图仍为UIView
  7. 类型
  8. 因此,您无法在视图控制器的视图上调用Tran的{​​{1}},因为该视图的类型不属于-doSomething