2011-05-30 2 views
2

Bonjour J'ai problème dans l'affichage bouton segmentée sur la barre de navigation J'essaie ce code, il ne fonctionne pas J'ai la barre d'onglets pour appeler cette tabBar J'utilise Cette Code TabBar fonctionne bien, mais le bouton sur la barre de navigation n'afficheBouton Segment n'affiche pas sur la barre de navigation iphone

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { 
    UITabBarController *tabcontroller = [[UITabBarController alloc] init]; 

    UITabBarController *vc1 = [[TMapViewController alloc] init]; 
    UITabBarController *vc2 = [[TShareController alloc]init]; 
    UITabBarController *vc3 = [[TSpeedometerController alloc]init]; 
    UITabBarController *vc4 = [[TReviewsController alloc]init]; 
    NSArray *viewControllers = [NSArray arrayWithObjects:vc1,vc2,vc3,vc4,nil]; 



    [tabcontroller setViewControllers:viewControllers]; 

    [vc1 release]; 
    [vc2 release]; 
    [vc3 release]; 
    [vc4 release]; 

    [self.navigationController pushViewController: tabcontroller animated: YES]; 
} 

Et juste ce code dans le TMapViewController.m pour appeler le bouton sur la barre de navigation

-(id)init 
{ 
    UITabBarItem *tbi = [self tabBarItem]; 
    [tbi setTitle:@"Map"]; 
    UIImage *i = [UIImage imageNamed:@"mapper_f.png"]; 
    [tbi setImage:i]; 


    UISegmentedControl *segmentedControl = [[UISegmentedControl alloc] initWithItems: 
              [NSArray arrayWithObjects: 
              [UIImage imageNamed:@"Activitieslist.png"], 

              nil]]; 
    [segmentedControl addTarget:self action:@selector(segmentAction:) forControlEvents:UIControlEventValueChanged]; 
    segmentedControl.frame = CGRectMake(0, 0, 50, 35); 
    segmentedControl.segmentedControlStyle = UISegmentedControlStyleBar; 
    segmentedControl.momentary = YES; 

    UIBarButtonItem *segmentBarItem = [[UIBarButtonItem alloc] initWithCustomView:segmentedControl]; 
    [segmentedControl release]; 

    self.navigationItem.rightBarButtonItem = segmentBarItem; 
    [segmentBarItem release]; 

    return self; 
} 

Même chose que j'utilise dans le - (void) viewDidLoad { [super viewDidLoad];

UISegmentedControl *segmentedControl = [[UISegmentedControl alloc] initWithItems: 
             [NSArray arrayWithObjects: 
             [UIImage imageNamed:@"Activitieslist.png"], 

             nil]]; 
[segmentedControl addTarget:self action:@selector(segmentAction:) forControlEvents:UIControlEventValueChanged]; 
segmentedControl.frame = CGRectMake(0, 0, 50, 35); 
segmentedControl.segmentedControlStyle = UISegmentedControlStyleBar; 
segmentedControl.momentary = YES; 

UIBarButtonItem *segmentBarItem = [[UIBarButtonItem alloc] initWithCustomView:segmentedControl]; 
[segmentedControl release]; 

self.navigationItem.rightBarButtonItem = segmentBarItem; 
[segmentBarItem release]; 
[[self.navigationBar topItem] setTitleView:segmentedControl]; 
[[[self.navigationBar topItem] titleView] setUserInteractionEnabled:YES]; 



TLocationManager *manager = [[TLocationManager alloc] init]; 
self.locationManager = manager; 
self.locationManager.delegate = self; 
[manager release]; 

TMapRoutes *routes = [[TMapRoutes alloc] init]; 
self.mapRoutes = routes; 
self.mapRoutes.mapView = self.myMapView; 
[routes release]; 

self.myMapView.delegate = self; 

/* Run the simulator */ 
[locationManager startUpdatingLocation]; 

} même ça marche pas me donner la même erreur. Merci à l'avance Harish

+0

Je ne pense pas que je suis votre problème correctement. Désolé, je ne peux pas être utile plus loin ici. –

+0

Lorsque je n'utilise pas l'onglet, il affiche le segmentBarItem> cela signifie quand j'appelle l'autre vue directement avec la navigation Push view pense que cela fonctionne afficher l'élément de segment mais quand appeler tout l'élément d'onglet il n'affiche pas l'élément de segment Tabbar travaille – Shima

Répondre

0

Set comme [self.navigationBar titleView:segmentedControl]

-(void)loadView { 
UITabBarItem *tbi = [self tabBarItem]; 
    [tbi setTitle:@"Map"]; 
    UIImage *i = [UIImage imageNamed:@"mapper_f.png"]; 
    [tbi setImage:i]; 

UISegmentedControl *segmentedControl = [[UISegmentedControl alloc] initWithItems: 
             [NSArray arrayWithObjects: 
             [UIImage imageNamed:@"Activitieslist.png"], 

             nil]]; 
[segmentedControl addTarget:self action:@selector(segmentAction:) forControlEvents:UIControlEventValueChanged]; 
segmentedControl.frame = CGRectMake(0, 0, 50, 35); 
segmentedControl.segmentedControlStyle = UISegmentedControlStyleBar; 
segmentedControl.momentary = YES; 

UIBarButtonItem *segmentBarItem = [[UIBarButtonItem alloc] initWithCustomView:segmentedControl]; 
[segmentedControl release]; 

[[self.navigationBar topItem] setTitleView:segmentedControl]; [[[self.navigationBAr topItem] titleView] setUserInteractionEnabled:YES]; 
[segmentBarItem release]; 
+0

Je l'utilise dans les méthodes - (id) init {tous le code this [self.navigationBar titleView: segmentedControl]; } il me donne une demande d'erreur pour le membre 'navigationBar' dans quelque chose qui n'est pas une structure ou une union – Shima

+0

essayez de cette façon, [[self.navigationBar topItem] setTitleView: segmentedControl]; \t \t [[[self.navigationBAr topItem] titleView] setUserInteractionEnabled: YES]; – Anand

+0

Il donne l'erreur que quelque chose ne structure pas ou union – Shima

Questions connexes