изменить этот код для поддержки другого представления - PullRequest
1 голос
/ 17 марта 2011

Я нашел этот код (написано в appdelegate для приложения). Все, что я хочу, это просто позволить ему поддерживать еще одно представление (я его создал).

код:

- (IBAction)swap
{
    NSArray *subs = [window subviews];
    [[subs objectAtIndex:0] removeFromSuperview];
    if([subs objectAtIndex:0] == view2){
        [window addSubview:view1];
    } else if([subs objectAtIndex:0] == view1){
        [window addSubview:view2];
    }
}

Ответы [ 3 ]

1 голос
/ 17 марта 2011

Предполагая, что представления 1, 2 и 3 являются единственными представлениями -

- (IBAction)swap
{
    [window sendSubviewToBack:[[window subviews] lastObject]];
}

Или, поменять направление

- (IBAction)swap
{
    [window bringSubviewToFront:[[window subviews] objectAtIndex:0]];
}
0 голосов
/ 17 марта 2011

Если вы не хотите мучить себя с помощью IF ELSE, вы можете использовать массив представлений и выполнять их итерацию.

NSArray *myViews = [NSArray arrayWithObjects:view1, view2, view3, nil];

NSInteger nextIndex = [myViews indexOfObject:[[window subviews] objectAtIndex:0]] + 1;

nextIndex = (nextIndex % [myViews count]); // to loop around if reached the end
[window addSubview:[myViews objectAtIndex:nextIndex]];

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

0 голосов
/ 17 марта 2011
- (IBAction)swap
{
    NSArray *subs = [window subviews];
    UIView *currentView = (UIView *)[subs objectAtIndex:0];
    [currentView removeFromSuperview];
    if(currentView == view1){
        [window addSubview:view2];
    } else if(currentView == view2){
        [window addSubview:view3];
    } else 
        [window addSubview:view1];
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...