iPhone Pushing View Controller в левом направлении

Ничто из этого не легко реализовать и не будет функционировать оптимальным образом.

Фрагменты имеют вызов метода onDetach, который выполнит эту работу.

@Override
    public void onDetach() {
        super.onDetach();
        PUT YOUR CODE HERE
    }

ЭТО ДЕЛАЕТ РАБОТУ.

8
задан Aran Mulholland 8 July 2009 в 04:13
поделиться

3 ответа

Вместо использования контроллера навигации я бы просто переместил представление.

CGRect inFrame = [currentView frame];
CGRect outFrame = firstFrame;
outFrame.origin.x -= inFrame.size.width;

[UIView beginAnimations:nil context:nil];
[UIView setAnimationDuration:1.0];

[newView setFrame:inFrame];
currentView setFrame:outFrame];

[UIView commitAnimations];
8
ответ дан 5 December 2019 в 06:54
поделиться

Я не думаю, что вы можете явно определить направление скольжения в UINavigationControllers . Что вы можете сделать, так это вытащить текущий вид из стека навигации, чтобы отобразить предыдущий вид, который будет анимироваться так, как вы хотите. Однако это может быть сложно, если вы хотите, чтобы в зависимости от того, что вы делаете в текущем представлении, отображались разные контроллеры представления.

Если ваш рабочий процесс не слишком сложен, вы можете удерживать ссылку на предыдущий контроллер представления в текущем контроллере представления. . в зависимости от того, что вы делаете в текущем представлении (например, выбираете ячейку табличного представления), вы можете изменить любые данные, которые вам нужны в предыдущем контроллере представления, а затем вызвать

[self.navigationController popViewController];

или любой другой правильный метод (я думаю, что ' довольно близко к тому, как оно есть). это позволит вам перемещаться вниз по стеку навигации с нужной анимацией, которая работает, если в стеке навигации задано количество просмотров.

4
ответ дан 5 December 2019 в 06:54
поделиться

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

В вашем AppDelegate:

UITableViewController *first = [[RootViewController alloc] initWithStyle:UITableViewStylePlain];
UITableViewController *second = [[SomeOtherViewController alloc] initWithStyle:UITableViewStylePlain];

NSArray *stack = [NSArray arrayWithObjects: first, second, nil];

UINavigationController *nav = [[UINavigationController alloc] init];
[nav setViewControllers:stack animated:NO];
0
ответ дан 5 December 2019 в 06:54
поделиться
Другие вопросы по тегам:

Похожие вопросы: