1つのビュー(ビューコントローラ全体ではない)UISegmentedControlの中央にを追加しようとしています。UINavigationBarどうすればこれを行うことができますか?
私が読んだ他の回答では、ViewController全体UINavigationItemにタイトルとしてaを含めることしかできません。1つのビューにのみ表示する必要があります。
1つのビュー(ビューコントローラ全体ではない)UISegmentedControlの中央にを追加しようとしています。UINavigationBarどうすればこれを行うことができますか?
私が読んだ他の回答では、ViewController全体UINavigationItemにタイトルとしてaを含めることしかできません。1つのビューにのみ表示する必要があります。
このコードはあなたを助けます。
UISegmentedControl *segmentedControl = [[UISegmentedControl alloc] initWithItems:
                                            [NSArray arrayWithObjects:@"Add",@"Delete",
                                             nil]];
    segmentedControl.frame = CGRectMake(0, 0, 80, 30);
    segmentedControl.segmentedControlStyle = UISegmentedControlStyleBar;
    [segmentedControl setWidth:35.0 forSegmentAtIndex:0];
    [segmentedControl setWidth:45.0 forSegmentAtIndex:1];
    [segmentedControl addTarget:self action:@selector(segmentAction:) forControlEvents:UIControlEventValueChanged];
    segmentedControl.momentary = YES;
    UIBarButtonItem *segmentBarItem = [[UIBarButtonItem alloc] initWithCustomView:segmentedControl];
    [segmentedControl release];
    self.navigationItem.leftBarButtonItem = segmentBarItem;
    [segmentBarItem release];
このコードの結果は

編集:
動作する正確なコード:
UISegmentedControl *segmentedControl = [[UISegmentedControl alloc] initWithItems:
                                            [NSArray arrayWithObjects:@"Add",@"Delete",
                                             nil]];
    segmentedControl.frame = CGRectMake(0, 0, 80, 30);
    segmentedControl.segmentedControlStyle = UISegmentedControlStyleBar;
    [segmentedControl setWidth:35.0 forSegmentAtIndex:0];
    [segmentedControl setWidth:45.0 forSegmentAtIndex:1];
    [segmentedControl addTarget:self action:@selector(segmentAction:) forControlEvents:UIControlEventValueChanged];
    segmentedControl.momentary = YES;
    self.navigationItem.titleView = segmentedControl;
UISegmentedControlをSubViewとしてnavigationBarに追加できます。
NSArray *arrayOfItems = [[NSArray alloc] initWithObjects:@"A",@"B",@"C", nil];
UISegmentedControl *segmentedControl = [[UISegmentedControl alloc] initWithItems:arrayOfItems];
segmentedControl.frame=CGRectMake(60, 0, 200, 44);
[self.navigationController.navigationBar addSubview:segmentedControl];
UINavigationViewだけでなく、任意のビューの中央にUISegmentedControlを追加する場合:
UISegmentedControl *segmentedTab = [[UISegmentedControl alloc] initWithItems:[NSArray arrayWithObjects:@"a", @"b", @"c", nil]];
segmentedTab.center = CGPointMake(segmentedView.frame.size.width / 2, segmentedView.frame.size.height / 2);
[self.segmentedView addSubview:segmentedTab];
ここで、segmentedViewは、UISegmentedControlを含むビューです。