有没有办法在没有标题动画的情况下转换导航控制器中的视图?
我正在创建一个询问用户问题的应用,当他们点击下一个新问题被推送到NavigationStack并进行动画制作时。但标题栏也是动画的。标题栏上的标题没有改变,有没有办法阻止标题栏动画?
由于
答案 0 :(得分:0)
您可以使用分页UIScrollView
代替UINavigationController
。在IB中设置您的视图,在视图顶部UINavigationBar
,在UIScrollview
下方放置您的视图,让用户以这种方式滚动您的问题。
答案 1 :(得分:0)
你可以用以下方式停止动画:
// Pass the selected object to the new view controller.
[self.navigationController pushViewController:detailViewController animated:NO];
并确保将推送视图控制器的标题设置为(相同)正确的标题;例如在详细视图控制器的viewDidLoad
方法中执行:
self.title = @"title";
现在,您可以向详细视图控制器自定义类添加自定义initWithTitle:
方法,以传入标题需要更改时设置的标题,而不是您在问题中提到的标题。
希望这有帮助。
答案 2 :(得分:0)
我有同样的问题(在我的情况下,我在每个孩子中都有相同的标题,我添加到导航控制器,所以动画标题看起来很有趣)
我通过直接在导航控制器中添加标题,并将子控制器的标题设置为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;
答案 3 :(得分:0)
我不认为这个问题有任何直接的解决方案。但我觉得这是可以实现的。您可以拥有一个导航控制器。当您从导航控制器推送下一个视图时,您可能需要避开一些自定义动画。
我认为你可以做的是,你可以在
的框架中将下一个视图添加为子视图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)
您可以将下一个视图作为子视图添加到现有导航控制器,而不是从导航控制器推送视图,并在将x值从350更改为0时为视图提供一些自定义动画。
这似乎是在推动视图,但您只是通过添加子视图来创建它的效果。
希望这可以为您的解决方案提供方法。