私はいくつかのカスタム ビューを作成しようとしていますが、UISegmentControl (または同様のもの) があり、異なるビュー コントローラーを切り替えるが、セグメント コントロールが同じ場所にある場合に、このようなものを実装するにはどうすればよいか疑問に思っています (写真のサイズの違いは気にしないでください)。ナビゲーション コントローラに似ていますが、代わりにセグメントがあります。どんなアイデアでも大歓迎です。ありがとう
私はいくつかのカスタム ビューを作成しようとしていますが、UISegmentControl (または同様のもの) があり、異なるビュー コントローラーを切り替えるが、セグメント コントロールが同じ場所にある場合に、このようなものを実装するにはどうすればよいか疑問に思っています (写真のサイズの違いは気にしないでください)。ナビゲーション コントローラに似ていますが、代わりにセグメントがあります。どんなアイデアでも大歓迎です。ありがとう
これは簡単に行うことができます。ナビゲーションコントローラを使用する必要がありますが、すべてのビューでナビゲーションバーを非表示にします。そして、あなたは使用することができます
[self.navigationController pushViewController:@"Your viewController to which you want to navigate" animated:YES];
セグメントインデックスの選択。これらのViewControllerのいずれかから戻るには、これを実装する必要があります
[self.navigationController popViewControllerAnimated:YES];
選択したセグメントインデックスのボタンアクション。これがお役に立てば幸いです。ハッピーコーディング..!!!
他のコントローラを含むセグメント コントロールと配列を使用して ViewController を作成できます。セグメントの変更時に、配列のコントローラーの 1 つからビューを取得し、サブビューのように親 ViewControllerView に追加する必要があります。これは次のようになります
//in ViewControllerView.m
-(void)touchUpInsideSegmentIndex:(NSUInteger)segmentIndex {
//delegate is your ViewController
UIView * newToolView = [delegate viewAtIndex:segmentIndex];
//contentView declared in ViewControllerView.h
if (newToolView != contentView && newToolView) {
[contentView removeFromSuperview];
[contentView release];
contentView = [newToolView retain];
[self addSubview:contentView];
[self setNeedsLayout];
}
}
//in ViewController.m
- (UIView*)viewAtIndex:(NSInteger)index {
//yourControllersArray is an array of your controllers
if (index < 0 || index >= [yourControllersArray count]) {
NSLog(@"View At Wrong Index %d (max=%d)", index, [yourControllersArray count]);
return nil;
}
return [[yourControllersArray objectAtIndex: index] view];
}