Tag: uibarbuttonitem

以编程方式创build的UIBarButtonItem不启动select器动作

这是我的UIBarButton : [self.navigationItem setLeftBarButtonItem:[[UIBarButtonItem alloc] initWithTitle:@"+ Contact" style:UIBarButtonItemStylePlain target:nil action:@selector(showPicker:)] animated:YES]; 这是它应该启动的代码: – (void)showPicker:(id)sender { ABPeoplePickerNavigationController *picker = [[ABPeoplePickerNavigationController alloc] init]; picker.peoplePickerDelegate = self; [self presentModalViewController:picker animated:YES]; [picker release]; } 当我启动应用程序,并点击“+联系” UIBarButton ,没有任何反应。 没有错误,纳达。 我把一个断点,它永远不会到达select器引用的方法。 我是否以我调用select器的方式做错了什么? 谢谢!

添加一个正确的“完成”button(UIBarButtonItem)到UINavigationController

我看到在这里问了一个类似的问题: 如何添加一个右键到UINavigationController? (等),但它不是我想要做的,他们不是解决我的问题。 从本质上讲,我创build了一个名为WebViewViewController的UIViewController,其上有一个UIWebView,它将使用presentModalViewController进行显示。 本质上,它是一个迷你的网页浏览器,用于显示网页,同时保持用户在应用程序,而不是启动Safari。 viewController执行以下操作来显示…“完成”button是为了提供一个closures浏览器的地方。 -(IBAction)visitFacebook { WebViewViewController *rootController = [[WebViewViewController alloc] init]; rootController.webURL = @"http://www.facebook.com/"; UINavigationController *navigationController = [[UINavigationController alloc] initWithRootViewController:rootController]; UIBarButtonItem *doneButton = [[UIBarButtonItem alloc ] initWithBarButtonSystemItem:UIBarButtonSystemItemCancel target:self action:@selector(done:)]; [navigationController.navigationItem setRightBarButtonItem:doneButton animated:YES]; [navigationController.navigationItem setTitle:@"Facebook"]; if (rootController) { [self presentModalViewController:navigationController animated:YES]; } [doneButton release]; [rootController release]; } 不幸的是,“完成”button没有显示..任何想法,我会出错?

无法为UIBarButtonItem设置图像

我试图为我的UIBarButtonItem设置图像,我无法做到这一点。 我尝试了两次,第一种情况是我的图像在正确的位置,但是当我点击button时,没有任何反应(它应该popup一个新窗口,但没有任何效果)。 有一段我使用的代码: UIImage *faceImage = [UIImage imageNamed:@"plus_button.png"]; UIButton *face = [UIButton buttonWithType:UIButtonTypeCustom]; face.bounds = CGRectMake( 0, 0, faceImage.size.width, faceImage.size.height ); [face setImage:faceImage forState:UIControlStateNormal]; UIBarButtonItem *faceBtn = [[[UIBarButtonItem alloc] initWithCustomView:face]initWithImage:faceImage style:UIBarButtonItemStylePlain target:self action:@selector(addProduct:)]; self.navigationItem.leftBarButtonItem = faceBtn; 在第二种情况下,我在button上设置图像,新的窗口应该是出现的,但是不仅我想要的是我的自定义图像,而且还显示“边框”,看起来像图像放在默认button的中心。 显然,我只想要我的形象,而不是边界,只有我的形象。 在第二种情况下我使用了一段代码: UIBarButtonItem *addButton = [[UIBarButtonItem alloc]initWithImage:faceImage style:UIBarStyleDefault target:self action:@selector(addProduct:)]; self.navigationItem.leftBarButtonItem = addButton; 请帮我解决问题,任何帮助将不胜感激,谢谢!

在iOS 7 UIBarButtonItem外观麻烦,这可能是一个苹果的错误?

我回头看了一篇文章,这里是: iOS 6中的用户界面自定义 它显示了iOS 6的自定义。由于我已经写了使用该技术的应用程序的文章,它非常简单,没有魔法。 但是,我需要更新我的应用程序之一,并在iOS 7下无法正常工作。 看来UIBarButtonItems的定制在第一次出现视图的时候不起作用。 如果我解雇了观点,然后呈现它一切正常。 这里显示的是: 第一次看到的是: 第二次: 我在他的例子中看到了这个问题,我的代码和我写的一个testing应用程序。 代码如下: // Customizing the Back Bar Buttons UIImage * btBack_30 = [[UIImage imageNamed:@"btBack_30"] resizableImageWithCapInsets:UIEdgeInsetsMake(0, 13, 0, 5)]; UIImage * btBack_24 = [[UIImage imageNamed:@"btBack_24"] resizableImageWithCapInsets:UIEdgeInsetsMake(0, 12, 0, 5)]; [[UIBarButtonItem appearance] setBackButtonBackgroundImage:btBack_30 forState:UIControlStateNormal barMetrics:UIBarMetricsDefault]; [[UIBarButtonItem appearance] setBackButtonBackgroundImage:btBack_24 forState:UIControlStateNormal barMetrics:UIBarMetricsLandscapePhone]; 正如你可以看到没有真正的魔法,很标准,但我找不到任何理由或解释为什么这不起作用的iOS 7中。代码得到执行- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary […]

进入视图时,撰写UIBarButtonItem稍微改变位置

在导航栏中使用UIBarButtonSystemItemComposebutton呈现新视图时,该位置略微closures,并在视图进入视图后进行调整。 我认为这是iOS中的一个错误(使用8.3版本)。 它只发生在使用UIBarButtonSystemItemCompose时。 它不会发生与其他types的button(系统,文本或自定义)。 复制这个错误所需的唯一代码就是使用这个ViewController代码和可以看到的视图: #import "ViewController.h" @interface ViewController () @end @implementation ViewController – (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view, typically from a nib. UIBarButtonItem* composeBarButtonItem = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemCamera target:nil action:nil]; [self.navigationItem setRightBarButtonItem:composeBarButtonItem animated:YES]; } @end 我在GitHub上创build了一个仓库,用最less的代码来重现这个问题: https : //github.com/jvdvleuten/iOSComposeBarButtonItemBug 看起来与此相关: 当UINavigationController被模态地呈现时,UIBarButtonItems移位 ,除了我的错误仅在使用UIBarButtonSystemItemCompose时出现。 有任何想法吗?

如何animationUINavigationBar中的button更改?

我正在调用-(void)setEditing:(BOOL)editing animated:(BOOL)animated在我的代码中-(void)setEditing:(BOOL)editing animated:(BOOL)animated方法,以在导航栏-(void)setEditing:(BOOL)editing animated:(BOOL)animated两个button之间切换。 -(void)setEditing:(BOOL)editing animated:(BOOL)animated { [super setEditing:editing animated:animated]; // Toggle '+' and 'Add To Order' button. if( editing ) { self.navigationItem.rightBarButtonItem = self.addItemButton; } else { self.navigationItem.rightBarButtonItem = self.addToOrderButton; } } self.addItemButton和self.addToOrderButton是包含预定义的UIBarButtonItems的ivars,在awakefromNib设置。 self.addToOrderButton的button比self.addToOrderButton的button要宽self.addItemButton ,所以我希望当触发编辑状态的变化时,它们是两个宽度之间的细微animation(通过在LHS上点击标准editButtonItem导航。 如果我围绕整个if:else与[UIView beginAnimations:nil context:NULL]; 和[UIView commitAnimations]; button更改会生成animation,但其位置会从左上angular单独飞入,而不是原地移动,只是为其宽度设置animation。 如何为导航栏元素设置animation,使每个单独的元素(RHSbutton,标题)以更合适的方式进行animation制作?

在视图控制器上添加导航栏

我在iOS上是新的,我想添加一个导航栏在我的视图控制器与左边的2个button和订阅权。 我没有任何线索如何做到这一点..现在我刚从界面生成器添加了一个导航栏,创build一个(强)refrnce在.h文件中,并做了以下编码。 navBar = [[UINavigationBar alloc] initWithFrame:CGRectMake(0, 20, 1026, 50)]; [navBar setTintColor:[UIColor clearColor]]; [navBar setBackgroundColor:[UIColor redColor]]; [navBar setDelegate:self]; [self.view addSubview:navBar]; UIBarButtonItem *bi1 = [[UIBarButtonItem alloc] initWithTitle:@"subscribe" style:UIBarButtonItemStyleBordered target:self action:@selector(editBotton)]; bi1.style = UIBarButtonItemStyleBordered; bi1.tintColor =[UIColor colorWithWhite:0.305f alpha:0.0f]; self.navigationItem.rightBarButtonItem = bi1; 但nothings发生..请帮助

图像的导航栏button项目迅速

我想以快捷方式在导航栏的左侧显示图像。 我曾尝试添加导航栏button项目,并在那里设置图像。 问题是,我必须使用一个非常小的图像,以适应在导航栏很好。 但是制作这么小的图像会导致像素化,特别是在更大的手机iPhone 6和6 Plus上。 有没有办法使用高质量的图像,然后将框架设置为适合导航栏的边界? 我的尝试: var image = UIImage(named: "Harp.png") image = image?.imageWithRenderingMode(UIImageRenderingMode.AlwaysOriginal) self.navigationItem.leftBarButtonItem = UIBarButtonItem(image: image, style: UIBarButtonItemStyle.Plain, target: nil, action: nil) self.navigationItem.leftBarButtonItem.frame = CGRectMake(0, 0, 53, 31) //image.frame = CGRectMake(0, 0, 53, 31) 我试图把框架放在图像上,然后在酒吧button项目。 但是这是抛出一个错误: expression的types是不明确的,没有更多的上下文。

如何在使用UIPageViewController时将UIBarButtonItem添加到NavigationBar

请原谅我,已经有很多关于如何将UIBarButtonItem添加到NavigationBar的问题,但我似乎无法得到任何解决scheme在我的情况下工作。 这里是一个简单的testing应用程序,我一直在学习UIPageViewController的布局。 我有页面视图控制器很好地工作与三个独特的viewControllers。 我现在想为每个视图控制器设置唯一的rightBarButtonItems 。 我可以在DetailViewController简单地设置一个通用的barButtonItem 。 UIBarButtonItem *newButton = [[UIBarButtonItem alloc] initWithTitle:@"Whatever" style:UIBarButtonItemStylePlain target:self action:@selector(doSomething)]; self.navigationItem.rightBarButtonItem = newButton; 鉴于我需要在pageViewController中的三个页面的每一个独特的button,我不能在detailViewController设置button。 我已经尝试了三个控制器的viewDidAppear上面的代码,但不会出现button。 我也尝试以相同的方式创buildbutton,然后像这样设置,没有运气。 DetailViewController *vc = [[DetailViewController alloc] init]; vc.navigationItem.rightBarButtonItem = newButton; 我知道我在这里附近,我只是不知道如何指定我需要添加一个button导航栏的NavigationController运行detailViewController我的contentViewControllersembedded英寸任何帮助将是伟大的ESPECIALLY SNIPPETS。 作为一个方面的说明,我已经尝试了一些其他方法已经出现问题。 在viewDidLoad设置button,而不是viewDidAppear 这将无法正常工作,因为每次从一个页面滑动到另一个页面时都不会调用viewDidLoad方法。 viewDidAppear方法是,所以我想在那里设置button。 有可能viewWillAppear每次调用,但我没有检查。 在UIPageViewController委托方法中设置button 这是有问题的,如果用户翻翻页面以快速button将无法更改或无法显示。 解 原来我很接近…而不是在UIPageViewController方法中创buildbutton,我只需要在我的三个视图控制器中的每一个中创build一个navigationItem属性。 当控制器在委托方法中实例化时,我只需将navigationItem属性设置为与detailViewController相同。 在我的viewDidApper方法中,我可以创buildbutton。 然后在viewWillDisappear我设置buttonnil 。 您也可以在DetailViewController viewdidLoad上创buildbutton,并在viewdidLoad的viewDidAppear中更改文本和操作。 这里是一个例子。 在委托方法中 – (UIViewController *)pageViewController:(UIPageViewController *)pageViewController viewControllerBeforeViewController:(UIViewController […]

iOS 5:如何实现自定义(图像)后退button

我已经在我的博客上完成了教程,所以我知道如何制作可展示底部(堆栈)视图控制器标题的可拉伸button。 但我希望做的是有图标(如家的房子),没有文字,不resize。 使用我的自定义图像和下面的代码,我得到了一个拉伸的版本(不需要),标题顶部(不想),它点击时是色调/高亮(是好的); UIImage *backButtonImage = [UIImage imageNamed:@"backButton_30.png"]; [[UIBarButtonItem appearance] setBackButtonBackgroundImage:backButtonImage forState:UIControlStateNormal barMetrics:UIBarMetricsDefault]; 屏幕截图1 现在,我已经在这里search,并阅读所有类似的问题,回到旧的答案,对我来说有奇怪的结果。 这是我尝试的代码; UIImage *backButtonImage = [UIImage imageNamed:@"backButton_30.png"]; UIBarButtonItem *backButton = [[UIBarButtonItem alloc] initWithImage:backButtonImage style:UIBarButtonItemStyleBordered target:nil action:nil]; self.navigationItem.backBarButtonItem = backButton; 这种方法不伸展我的自定义图像button(是好的),也没有显示文字(我想要的),但仍然是原来的蓝色button(跆拳道),和我的自定义button不点击时点击,只有它下面的蓝色button! 屏幕截图2 请帮忙,我错过了什么? *更新 我已经通过使用可resize的图像来修复它了。 这迫使它不能'伸展' UIImage *backButtonHomeImage = [[UIImage imageNamed:@"backButtonHomeWhite_30.png"] resizableImageWithCapInsets:UIEdgeInsetsMake(0, 0, 0, 0)]; [[UIBarButtonItem appearance] setBackButtonBackgroundImage:backButtonHomeImage forState:UIControlStateNormal barMetrics:UIBarMetricsDefault]; 要解决显示在button上的标题,我必须做的 self.title […]