我有UIViewController
个班级A
和B
。 A
使用B
加载[A.view addSubView B.view]
。
B
有一个带后退按钮的导航栏。我想点击它时返回A
,所以在选择器中我尝试了[self.view removeFromSuperview]
,但它只删除了导航栏。然后我尝试了[self.view.superview removeFromSuperview]
,它仍然只删除了导航栏。我该怎么办?
此外,“后退”按钮的另一个小问题:设置它的标题。我尝试了这两种方法,但它仍然显示“返回”。
navItem.backBarButtonItem = [[UIBarButtonItem alloc] initWithTitle:@"Chapter" style:UIBarButtonItemStylePlain target:self action:@selector(handleBackBarButtonItem:)];
navItem.backBarButtonItem.title = @"Chapter";
提前谢谢!
答案 0 :(得分:1)
我认为您不太了解导航(UINavigationController
)如何在iOS中运行。假设你想要动画,这就是你想要的:
设置UINavigationController
。这可以在app的委托中完成(为了避免内存泄漏,在UINavigationController *navController
上设置一个实例变量:
navController = [[UINavigationController alloc] initWithRootViewController:A];
请注意,我们正在添加A
作为我们的根视图控制器。
需要时按下第二个视图控制器。我假设您在点击按钮后添加B.view
或其他内容。在添加第二个视图控制器的方法的实现中,运行以下代码,而不是[A.view addSubview:B.view]
。此方法应位于第一个控制器的.m文件中:
[self.navigationController pushViewController:B animated:YES];
这也会产生很好的过渡效果。
将第二个视图控制器弹出堆栈。使用UINavigationController
,一个漂亮的箭头形状的后退按钮会自动包含在推送的视图控制器中,以导航回最后一个视图控制器。这意味着您甚至不需要任何代码来允许向后导航。
就是这样!现在,如果您需要更改B
后退按钮的标题,请使用A
的{{1}}方法执行此操作:
viewDidLoad
答案 1 :(得分:0)
您可以获取一组子视图,然后删除您想要删除的子视图。此SO帖子将向您展示如何使用子视图数组删除所有子视图或多个子视图。