Возможна загрузка UIVIewcontroller из uiview другого UIViewController - PullRequest
1 голос
/ 13 января 2011

у меня есть:

  • и UIViewController A
  • UIView B: я добавил подпредставление, которое является UIView к UIViewController A
  • и UIViewController C

То, что я сделал, это:

в UIViewController A viewDidLoad's метод, я вызываю это:

UIView *subviewB = [[Subview alloc] initWithFrame:CGRectMake(0, 0, 1024, 768)];
[subviewB subviewBMethod]; // 
[self.view addSubview:subviewB];

Код SubviewBMethod предназначен для создания вида, внутри которого есть кнопка. После нажатия этой кнопки она изменится на UIViewController C.

Я пробовал это:

[self presentModalViewController:self.UIViewControllerC animated:YES];

И я получил это сообщение об ошибке:

предупреждение: несовместимые типы Objective C 'struct UIViewControllerC *', ожидаемый struct UIViewController * при передаче аргумента 1 'presentModalViewController: animated:' из отдельного типа Objective-C

Когда я запускаю приложение, оно сразу же закрывается, когда я нажимаю кнопку, я открывал ошибку консоли, сообщения об ошибке нет. Мой метод должен быть неправильным, поэтому мой вопрос:

Можно ли загрузить UIVIewcontroller из UIView другого UIViewController? Если:

  • Да: как это сделать?
  • Нет: что мне делать?

Ответы [ 3 ]

1 голос
/ 13 января 2011

Похоже, у вас есть такое объявление:

 UIViewControllerC *UIViewControllerC;
                 ^ 

Когда вы хотите:

 UIViewController *UIViewControllerC;
1 голос
/ 25 января 2011

Я недавно сделал то же самое. - У меня есть viewControllerA, на котором есть seeMoreView (пользовательский вид). Когда пользователь нажимает «увидеть больше», отображается viewControllerB.

Я решил это так:

  1. Подкласс I см. MoreView.

  2. Я объявил делегата в seeMoreView - синтаксис в этом ответе: Делегаты против Уведомления в iPhoneOS

  3. В viewControllerA я устанавливаю делегат seeMoreView как self при создании представления.

  4. В viewControllerA я реализую метод делегата, который представляет viewControllerB.

(Я не думаю, что в парадигме MVC рекомендуется вызывать контроллер представления из представления.)

0 голосов
/ 13 января 2011

Можете ли вы попробовать это?

[self presentModalViewController:(UIViewController *)self.UIViewControllerC animated:YES];
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...