Переключение между внешними представлениями с использованием пользовательского интерфейса сегментированного контроллера - PullRequest
0 голосов
/ 13 декабря 2011

Я пытаюсь создать приложение панели вкладок, где один из ViewController содержит UIToolbar с UISegmentedController.Проблема, с которой я столкнулся, заключается в настройке UISegmentedController для переключения между двумя представлениями, поскольку представления, которые я пытаюсь переключать, являются подклассами UIWebView, и я хотел бы, чтобы они были в отдельных файлах.(например, не просто установка двух представлений в "-viewDidLoad" ViewController.

Код метода во ViewController выглядит следующим образом:

- (IBAction)segmentedControlChanged
{   
switch (segmentedControl.selectedSegmentIndex)
    {case 0:
        [self.view addSubview:videosView];
        [imagesView removeFromSuperview];
        NSLog(@"1");
        break;
case 1:
        [self.view addSubview:imagesView];
        [videosView removeFromSuperview];
        NSLog(@"2");
        break;
default:
        break;
}

Где у меня есть видеосъемка.h, videosView.m, imagesView.h и imagesView.m, импортированные в верхней части этого документа и настроенные как подклассы UIWebView.

Ошибки, которые я получаю, указывают на то, что они не принимаютсяimagesView или VideosView в addSubview, а также то, что removeFromSuperview не является известным методом класса.

Заранее спасибо!

Ответы [ 2 ]

0 голосов
/ 12 марта 2014

Взгляните на этот модуль: https://github.com/xmartlabs/XLMailBoxContainer. Создает анимацию пользовательского интерфейса среди контроллеров представления.Эти контроллеры представления могут расширять UITableViewController или любой другой контроллер представления.

Надеюсь, это поможет вам!

0 голосов
/ 13 декабря 2011

1 - UIViewController не отвечает на removeFromSuperview, UIView

2- addSubview требует, чтобы ему был передан подкласс UIView, а не UIViewController

- (IBAction)segmentedControlChanged
{   
switch (segmentedControl.selectedSegmentIndex)
    {case 0:
        [self.view addSubview:videosView.view];
        [imagesView.view removeFromSuperview];
        NSLog(@"1");
        break;
case 1:
        [self.view addSubview:imagesView.view];
        [videosView.view removeFromSuperview];
        NSLog(@"2");
        break;
default:
        break;
}
...