1

私はいくつかのカスタム ビューを作成しようとしていますが、UISegmentControl (または同様のもの) があり、異なるビュー コントローラーを切り替えるが、セグメント コントロールが同じ場所にある場合に、このようなものを実装するにはどうすればよいか疑問に思っています (写真のサイズの違いは気にしないでください)。ナビゲーション コントローラに似ていますが、代わりにセグメントがあります。どんなアイデアでも大歓迎です。ありがとう

ここに画像の説明を入力 ここに画像の説明を入力

4

3 に答える 3

2

これは簡単に行うことができます。ナビゲーションコントローラを使用する必要がありますが、すべてのビューでナビゲーションバーを非表示にします。そして、あなたは使用することができます

[self.navigationController pushViewController:@"Your viewController to which you want to navigate" animated:YES];

セグメントインデックスの選択。これらのViewControllerのいずれかから戻るには、これを実装する必要があります

[self.navigationController popViewControllerAnimated:YES];選択したセグメントインデックスのボタンアクション。これがお役に立てば幸いです。ハッピーコーディング..!!!

于 2013-01-30T11:16:12.897 に答える
0
  1. UISegmentedControlをナビゲーションバーに配置します。
  2. ナビゲーションバーを透明に設定します。
  3. UISegmentedControlメソッドで、UINavigationControllerスタックからビューコントローラーをプッシュおよびポップするか、モーダルを表示および非表示にします
于 2013-01-30T10:49:58.917 に答える
0

他のコントローラを含むセグメント コントロールと配列を使用して 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];
}
于 2013-01-30T10:49:48.583 に答える