我没有使用我的视图控制器嵌入导航控制器。现在我正在使用代码返回主屏幕,使用后退按钮,但没有任何显示,我不知道为什么。我不想在我的vc中使用导航控制器。这是代码,
UIBarButtonItem *backButton = [[UIBarButtonItem alloc] initWithImage:[UIImage imageNamed:@"car_marker.png"]
style:UIBarButtonItemStylePlain
target:self.navigationController
action:@selector(popViewControllerAnimated:)];
self.navigationItem.leftBarButtonItem = backButton;
答案 0 :(得分:1)
您需要更改方法,因为如果没有navigation controller
,则无法弹出。
您应该将viewcontroller
嵌入navigation controller
,然后可以隐藏[[self navigationController] setNavigationBarHidden:YES animated:YES];
,然后您可以添加任何类型的自定义按钮来执行弹出操作。
用于向视图添加自定义后退按钮
- (void)addCustomBackButtonToView
{
UIButton *backButton = [[UIButton alloc] initWithFrame: CGRectMake(20, 20, 44.0f, 30.0f)];
[backButton setImage:[UIImage imageNamed:@"back.png"] forState:UIControlStateNormal];
[backButton addTarget:self action:@selector(popVC) forControlEvents:UIControlEventTouchUpInside];
[self.view addSubview:backButton];
}
- (void) popVC{
[self.navigationController popViewControllerAnimated:YES];
}
答案 1 :(得分:0)
您可以通过以下代码self.navigationController.navigationBar.isHidden = true
并使用 swipegesture选项向后移动,即使您必须使用导航控制器,@ iPeter 也有一个有效点。
答案 2 :(得分:0)
1)首先添加两个ViewControllers作为初始控制器(入口点)。
2)在两个ViewController上添加您希望拥有的视图。
3)在两个视图上添加按钮作为子视图。
4)从firstButton创建segue - >(使用show) - >第二控制器。
5)从第二个 - >(使用show) - >第一控制器。
见下图:
这不是执行pop / push的首选方式。您必须使用导航控制器(它类似于您推送的控制器的堆栈),它将为您提供默认的“后退”按钮,或者您可以创建自定义。
答案 3 :(得分:0)
由于未使用导航控制器,因此无法推送或弹出视图控制器。尝试使用Present&解除可以从任何控制器Instace调用的控制器。
步骤1:呈现给“显示没有导航栏但后退按钮的控制器”
UIButton *backBtn = [[UIButton alloc] initWithFrame: CGRectMake(20.0f, 20.0f, 50.0f, 30.0f)];
[backBtn setTitle:@"back" forState:UIControlStateNormal];
[backBtn addTarget:self action:@selector(dismissViewController) forControlEvents:UIControlEventTouchUpInside];
[self.view addSubview:backBtn];
第2步:在ViewDidLoad中添加backBatton
- (无效)回加{
xticklabels
}
步骤3:Dismisscontroller返回上一个场景
- (void)dismissViewController {
[self dismissViewControllerAnimated:NO completion:nil];
}