2009-12-21 2 views
0

Я сделал следующее ... tran - это UIView ... doSomething - это метод в UIView.but i can not вызов этого метода из viewdidload? любая помощь, пожалуйста?метод вызова UIView из проблемы UIViewcontroller?

- (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]; 

}

ответ

2
  1. Ваш подкласс UIView должны быть капитализированы Tran для удобства чтения (имена классов капитализируются)
  2. Вы добавляете m_view в представление контроллера представления через -addSubview:
  3. Таким образом, вид контроллера контроллера имеет массив subviews, и этот массив содержит экземпляр объекта типа Tran *
  4. Однако использование -addSubview: или литье через (Tran *) делает вид контроллера контроллера типа Tran.
  5. вид контроллера представления еще типа UIView
  6. Таким образом, вы не можете назвать Tran «s -doSomething на просмотр контроллера представления, так как эта точка зрения не типа Tran
+0

тран это страница UIView, dynaimcally Я создал файл ... tran.m, в котором доступен drawRect (который будет вызываться автоматически). Как я могу вызвать любые другие методы из контроллера вида? любое решение пожалуйста? –

+0

Вам необходимо создать экземпляр представления представления контроллера (не подзаголовка) как экземпляр типа «Tran». Это можно сделать в '-viewDidLoad:' или в Interface Builder. –

Смежные вопросы