Нужна помощь в настройке UISegmentedControl - PullRequest
0 голосов
/ 24 июня 2011

У меня есть представление, которое имеет UISegmentedControl в нижней части UIToolBar с 2 сегментами.Представление при загрузке должно по умолчанию отображать 1. Затем, когда выбран сегмент 2, оно должно переключиться на представление 2 и т. Д.

Прямо сейчас, когда я нажимаю на сегмент 2, оно скрывает представление 1, а затем переключается на2-й вид, но как мне сохранить отображение сегментированного элемента управления?Когда вид 1 скрыт, элемент управления также скрыт.

Нужно ли создавать 3 просмотра всего?И иметь представления 1 и 2 как подпредставления представления по умолчанию, в котором есть только сегментированный элемент управления?

РЕДАКТИРОВАТЬ:

- (void)segmentedControl:(SVSegmentedControl*)segmentedControl didSelectIndex:(NSUInteger)index
{
    LogResultsViewController* v1 = [[LogResultsViewController alloc] initWithNibName: @"LogResultsViewController" bundle:nil];
    CalendarController* v2 = [[CalendarController alloc] initWithNibName: @"CalendarController" bundle:nil];

    if (index == 0)
    {
        [self.view addSubview: v1.view];      
    }
    else
    {
        [self.view addSubview: v2.view];
    }
}

И этот код используется для загрузки этого представления:

- (void)loadView 
{
    UIBarButtonItem *actionButton = [[UIBarButtonItem alloc] initWithTitle:@"Back" style:UIBarButtonItemStylePlain target:self action:@selector(dismissCalendarView)];
    self.navigationItem.leftBarButtonItem = actionButton;
    [actionButton release];

    int statusBarHeight = 20;
    CGRect applicationFrame = (CGRect)[[UIScreen mainScreen] applicationFrame];
    self.view = [[[UIView alloc] initWithFrame:CGRectMake(0, statusBarHeight, applicationFrame.size.width, applicationFrame.size.height)] autorelease];
    self.view.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight;
    self.view.backgroundColor = [UIColor grayColor];
    calendar.frame = CGRectMake(0, 0, calendar.frame.size.width, calendar.frame.size.height);

    [self.view addSubview:calendar];
    [calendar reload];
}

Ответы [ 2 ]

1 голос
/ 24 июня 2011

Да, похоже, вы решили свою проблему.Ваши два заменяемых вида должны быть внутри третьего вида.В противном случае ваше управление переключением будет скрыто, когда скрыто родительское представление.

0 голосов
/ 24 июня 2011

Да, это именно то, что вам нужно сделать. Настройте вид контейнера, который содержит панель инструментов и другие виды. Затем добавьте и удалите два других представления как подпредставления представления контейнера по мере необходимости.

...