gpt4 book ai didi

ios - UIBarButtonItem 没有出现

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:00:04 25 4
gpt4 key购买 nike

我有一个问题,当加载 View 时,它会加载 UIBarButtonItem,但是我必须在“mostra_filtro_btn”中将它设置为 nil,但是在“load_map”中我必须再次设置它,但它没有出现。这是我的代码:

//
// FirstViewController.m
// House Finder
//
// Created by Giovanni Poli on 12/05/15.
// Copyright (c) 2015 Giovanni Poli. All rights reserved.
//

#import "MapViewController.h"
#import <QuartzCore/QuartzCore.h>
#import "Reachability.h"
#import "UIKit/UIKit.h"
#import <Foundation/Foundation.h>
#import "FiltroViewController.h"

@interface MapViewController ()

@end

@implementation MapViewController
@synthesize filtro_controller,overlay_filtro_counter,mappa_controller;



-(void)load_map{
NSLog(@"load_map");
[mapView removeFromSuperview];
[mappa_controller.view removeFromSuperview];
[filtro_controller.view removeFromSuperview];

UIBarButtonItem *Button = [[UIBarButtonItem alloc] initWithTitle:@"Filtro" style:UIBarButtonItemStyleBordered target:self action:@selector(mostra_filtro_btn:)];
[Button setTitle:@"Filtro"];
[Button setTitleTextAttributes:[NSDictionary dictionaryWithObjectsAndKeys:[UIColor whiteColor], NSForegroundColorAttributeName,nil]forState:UIControlStateNormal];
self.navigationItem.rightBarButtonItem = Button;
}

- (id) init{
filtro_controller = [[FiltroViewController alloc]init];
[self.view addSubview:filtro_controller.view];
[self addChildViewController:filtro_controller];
return self;
}


- (void)viewDidLoad {
self.title = @"Mappa";
self.navigationItem.title = @"House Finder";
self.navigationController.navigationBar.translucent = FALSE;
UIBarButtonItem *Button = [[UIBarButtonItem alloc] initWithTitle:@"Filtro" style:UIBarButtonItemStyleBordered target:self action:@selector(mostra_filtro_btn:)];
[Button setTitle:@"Filtro"];
[Button setTitleTextAttributes:[NSDictionary dictionaryWithObjectsAndKeys:[UIColor whiteColor], NSForegroundColorAttributeName,nil]forState:UIControlStateNormal];
self.navigationItem.rightBarButtonItem = Button;

NSString *filePath = [[NSBundle mainBundle] pathForResource:@"data" ofType:@"json"];
NSData *content = [[NSData alloc] initWithContentsOfFile:filePath];
NSDictionary *json = [NSJSONSerialization JSONObjectWithData:content options:kNilOptions error:nil];
NSArray * json_all = [json objectForKey:@"results"];






mapView = [[MKMapView alloc]initWithFrame:CGRectMake(0,0,self.view.frame.size.width,self.view.frame.size.height-40)];
mapView.delegate = self;
mapView.showsUserLocation = NO;
mapView.userInteractionEnabled = YES;
CLLocationCoordinate2D annotationCoord;
self.view.userInteractionEnabled = YES;

NSDictionary * temp;
for (id object in json_all) {
temp = object[@"titolo"];
annotationCoord.latitude = [object[@"lat"] floatValue];
annotationCoord.longitude = [object[@"lon"] floatValue];
MKPointAnnotation *annotationPoint = [[MKPointAnnotation alloc] init];
annotationPoint.coordinate = annotationCoord;
annotationPoint.title = object[@"titolo"];
annotationPoint.subtitle = object[@"agenzia"];
[mapView addAnnotation:annotationPoint];
}

[mapView showAnnotations:[mapView annotations] animated:YES];
[self.view addSubview:mapView];
[self.view setNeedsDisplay];
}


- (IBAction) mostra_filtro_btn: (id)sender{
NSLog(@"mostra_filtro_btn");
self.navigationItem.rightBarButtonItem = nil;


filtro_controller = [[FiltroViewController alloc]init];
[self.view addSubview:filtro_controller.view];
[self addChildViewController:filtro_controller];
}







- (MKAnnotationView *)mapView:(MKMapView *)mapViews viewForAnnotation:annotation{
if (annotation == mapViews.userLocation) return nil;
MKPointAnnotation * temp = annotation;
MKAnnotationView * m = [[MKAnnotationView alloc] initWithAnnotation:annotation reuseIdentifier:@"casa"];
m.canShowCallout = YES;
m.enabled = YES;
m.userInteractionEnabled = YES;
NSString * icon_file = [NSString stringWithFormat:@"%@.png",temp.subtitle];
m.image = [UIImage imageNamed:icon_file];
return m;
}


- (void)mapView:(MKMapView *)mapView didSelectAnnotationView:(MKAnnotationView *)view{
NSLog(@"overlay prezzo");

}




- (void)didReceiveMemoryWarning {
[super didReceiveMemoryWarning];
}

@end

最佳答案

使用下面的代码来取消导航项,这样它就会隐藏在你想要的地方

[self.navItem setRightBarButtonItem:nil];
[self.navItem setLeftBarButtonItem:nil];

关于ios - UIBarButtonItem 没有出现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30214596/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com