Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/42.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Iphone 将“后退”按钮设置为自定义UIImage_Iphone_Ios_Objective C - Fatal编程技术网

Iphone 将“后退”按钮设置为自定义UIImage

Iphone 将“后退”按钮设置为自定义UIImage,iphone,ios,objective-c,Iphone,Ios,Objective C,目前,我在UIBarButtonItems中使用自己的自定义图像,代码如下: UIButton *profileBarButton = [[UIButton alloc] initWithFrame:CGRectMake(0, 0, 35.0f, 35.0f)]; [profileBarButton setImage:[UIImage imageNamed:@"profile-barbutton.png"] forState:UIControlStateNormal]; [pro

目前,我在UIBarButtonItems中使用自己的自定义图像,代码如下:

UIButton *profileBarButton = [[UIButton alloc] initWithFrame:CGRectMake(0, 0, 35.0f, 35.0f)];
    [profileBarButton setImage:[UIImage imageNamed:@"profile-barbutton.png"] forState:UIControlStateNormal];
    [profileBarButton addTarget:self.navigationController action:@selector(toggleMenu) forControlEvents:UIControlEventTouchUpInside];



    self.navigationItem.leftBarButtonItem = [[UIBarButtonItem alloc] initWithCustomView:profileBarButton];
当我有一个已定义的操作要调用时,这非常有效,例如显示modalviewcontroller和打开编辑模式。然而,我很困惑,我该如何设置从一个视图返回到另一个视图的操作,而不是通过模式?是否有一个特定的方法可以通过编程方式调用?通常,navigationcontroller会处理这些…

使用以下代码:

 [self dismissViewControllerAnimated:YES completion:nil];
UIImage *backButtonImage = [UIImage imageNamed:@"backButton.png"];
UIButton *backButton = [UIButton buttonWithType:UIButtonTypeCustom];

[backButton setImage:backButtonImage forState:UIControlStateNormal];
backButton.frame = CGRectMake(0, 0, backButtonImage.size.width, backButtonImage.size.height);
[backButton addTarget:self action:@selector(back) forControlEvents:UIControlEventTouchUpInside];
UIBarButtonItem *customBackBarItem = [[UIBarButtonItem alloc] initWithCustomView:backButton];

self.navigationItem.leftBarButtonItem = customBackBarItem;

请检查此代码

    MyViewController *vc = [[MyViewController alloc] initWithNibName:@"MyNib" bundle:nil];
UINavigationController *nc = [[UINavigationController alloc] initWithRootViewController:vc];

[self presentModalViewController:nc animated:YES];

[vc release];
[nc release];
然后通常推送代码,如

    OtherViewController *vc = [[OtherViewController alloc] initWithNibName:@"MyOtherNib" bundle:nil];
[self.navigationController pushViewController:vc animated:YES];
[vc release];
:)

尝试以下代码:

 [self dismissViewControllerAnimated:YES completion:nil];
UIImage *backButtonImage = [UIImage imageNamed:@"backButton.png"];
UIButton *backButton = [UIButton buttonWithType:UIButtonTypeCustom];

[backButton setImage:backButtonImage forState:UIControlStateNormal];
backButton.frame = CGRectMake(0, 0, backButtonImage.size.width, backButtonImage.size.height);
[backButton addTarget:self action:@selector(back) forControlEvents:UIControlEventTouchUpInside];
UIBarButtonItem *customBackBarItem = [[UIBarButtonItem alloc] initWithCustomView:backButton];

self.navigationItem.leftBarButtonItem = customBackBarItem;
在@selector(back)中,“back”是触发navigationcontroller的弹出方法的方法。像这样:

-(void)back {
    [self.navigationController popViewControllerAnimated:YES];
}

为了从一个视图返回到另一个视图,您可以这样写:

- (void) toggleMenu
{
    if (self.navigationController.visibleViewController == self)
    {
        [self.navigationController popViewControllerAnimated: YES];
    }
}

当你在做这件事的时候,你能告诉我如何通过编程在我的左按钮和视图的侧面之间添加一些填充吗?@Auser你是什么意思?事实上没有,这很令人惊讶。如果我定义了一个名为-(void)simpleback{[self dismissViewControllerAnimated…}的方法,它不会放弃视图,即使调用了该方法(我记录了它)。还有其他想法吗?我的意思是设置放置BarButtonItem的宽度?我无法得到wt,这正是您真正的问题:(你说的是bar按钮,你正在创建一个UIButton??是的。为了设置UIBarButtonItem的背景图像,使其没有标准的iOS模板按钮,不幸的是,你需要对自定义UIView进行子类化。