UINavigationController анимация просмотра, но не заголовка - PullRequest
4 голосов
/ 06 мая 2011

Есть ли способ перехода между представлениями в контроллере навигации без анимации заголовка?

Я создаю приложение, которое задает пользователям вопросы, когда они нажимают следующий, на NavigationStack помещается новый вопросанимация. Но заголовок также анимирован.Заголовок в строке заголовка не изменяется, поэтому есть ли способ остановить анимацию строки заголовка?

Спасибо

Ответы [ 4 ]

0 голосов
/ 17 июня 2013

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

Я думаю, вы можете добавить следующий вид как подпредставление в кадре, где

x = 350( anything beyond the view frame i.e 320, assuming iphone) , 
y = 0 , 
width = 320 and 
height = view height - 20 (20 is the height of navigation bar)

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

Может показаться, что вы нажимаете на представление, но вы просто создаете его эффект, добавляя его как подпредставление.

Надеюсь, что это может дать подход к вашему решению.

0 голосов
/ 06 мая 2011

Вы можете остановить анимацию с помощью:

// Pass the selected object to the new view controller.
[self.navigationController pushViewController:detailViewController animated:NO];

и убедитесь, что вы установили заголовок для контроллера push-представления на (тот же) правильный заголовок; например в детальном представлении viewDidLoad метод контроллера сделать:

self.title = @"title";

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

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

0 голосов
/ 17 июня 2013

У меня была та же проблема (в моем случае, у меня один и тот же заголовок у каждого потомка, который я добавляю в контроллер nav, поэтому анимация заголовка выглядит забавно)контроллер nav и установка заголовка дочерних контроллеров на nil

UINavigationController *nav_controller;

UILabel *lbl_title = [[UILabel alloc] initWithFrame:...]
// Modify your title here

[nav_controller.view addSubview:lbl_title];

UIViewController *vc_child;
vc_child.title = nil;
0 голосов
/ 06 мая 2011

Вы можете использовать UIScrollView вместо UINavigationController.Настройте ваше представление в IB с помощью UINavigationBar в верхней части представления, а справа внизу поместите UIScrollview и дайте пользователю возможность прокручивать ваши вопросы таким образом.

...