在IOS中不使用导航控制器的后退按钮

在IOS中不使用导航控制器的后退按钮,ios,objective-c,Ios,Objective C,我没有将导航控制器嵌入视图控制器。现在,我使用一个代码返回到主屏幕,并使用返回按钮,但没有出现任何东西,我不知道为什么。我不想在我的vc中使用导航控制器。这是代码 UIBarButtonItem *backButton = [[UIBarButtonItem alloc] initWithImage:[UIImage imageNamed:@"car_marker.png"]

我没有将导航控制器嵌入视图控制器。现在,我使用一个代码返回到主屏幕,并使用返回按钮,但没有出现任何东西,我不知道为什么。我不想在我的vc中使用导航控制器。这是代码

    UIBarButtonItem *backButton = [[UIBarButtonItem alloc] initWithImage:[UIImage imageNamed:@"car_marker.png"]
                                                               style:UIBarButtonItemStylePlain
                                                              target:self.navigationController
                                                              action:@selector(popViewControllerAnimated:)];
self.navigationItem.leftBarButtonItem = backButton;
应该是这样的,

您可以通过以下代码隐藏导航控制器:self.navigationController.navigationBar.isHidden=true

并使用swipegesture选项向后移动,即使您必须使用导航控制器,@iPeter有一个有效点。

1)添加两个视图控制器,使第一个作为初始控制器(入口点)

2) 在两个ViewController上添加您想要的大小的视图

3) 在两个视图上添加按钮作为子视图

4) 从第一个按钮创建segue->(使用show)->第二个控制器

5) 从第二个->(使用show)->第一个控制器

请参见下图-:

这不是执行pop/push的首选方式。您必须使用导航控制器(其工作原理类似于您按下的控制器的堆栈),它将为您提供默认的后退按钮,或者您可以创建自定义按钮。


您需要更改方法,因为没有
导航控制器,您无法弹出

您应该将
viewcontroller
嵌入
navigation controller
,然后可以使用
[[self-navigationController]setnavigationbar隐藏:是动画:是]然后您可以添加任何类型的自定义按钮来执行弹出操作

用于向视图中添加自定义后退按钮

- (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];
}

您不能推送或弹出视图控制器,因为您没有使用导航控制器。尝试使用可从任何控制器Instance调用的Present&Disclose控制器

步骤1:向“显示的控制器没有导航栏,只有后退按钮”

}

步骤3:解除控制器以返回上一个场景

-(无效)解雇ViewController{

[自我解除视图控制器激活:未完成:无]


}

显示与此PopViewControlleranimated相关的代码,但没有显示任何内容-表示您的按钮不可见,返回按钮将显示在何处@Anbu.KarthikYou无法弹出到
viewcontroller
,除非您的
viewcontroller
嵌入到
UINavigationController
。难道我们不能使用导航控制器并从vc移回主屏幕吗@iPeterkarthik-你看到这行了吗?
我没有在问题中嵌入带有视图控制器的导航控制器
是的,我看到了,这就是我提到嵌入导航控制器的原因,如果你没有使用相关的视图,你可以简单地使用显示视图控制器wrong@karthik您已经给出了答案,通过使用UIView和按钮,他可以关闭视图。如何使用滑动手势@Karthikeyany你可以看到很多例子,我如何将导航栏颜色更改为透明,使我的背景图像看起来像我上面添加的屏幕截图@例如,您只需要隐藏导航栏,而不是使其透明。请遵循我粘贴的代码,您将得到您想要的,但为了执行弹出操作,您需要在左上角位置添加自定义后退按钮。如何根据您的代码使用自定义后退按钮@它不工作,只是消失了导航栏,但没有显示后退按钮@请告诉我们如何在代码中添加自定义后退按钮。
[self presentViewController:@"<ViewControllerToBePresented>" animated:NO completion:nil];
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];