0

私は3つのビューを持つViewControllerを持っています:UISegmentedControl、tableView、およびcalendarViewを持つツールバーを表示するRootview。2つのUIViewを1つのView Controllerに結合する方法

私はrootViewとtableViewにXIBを持っていますが、calendarViewにはXIBがありません。

私は何とかこのViewControllerに合わせてカレンダービューを読み込むコードを組み合わせる必要があります。以前は、calendarViewを独自のviewControllerとして使用していました。

calendarViewのためのコード:

// The designated initializer. Override if you create the controller programmatically and want to perform customization that is not appropriate for viewDidLoad. 
- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil { 
    self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil]; 
    if (self) { 
     // Custom initialization. 
     calendar = [[TKCalendarMonthView alloc] init]; 
     calendar.delegate = self; 
     calendar.dataSource = self; 
    } 
    return self; 
} 

// Implement loadView to create a view hierarchy programmatically, without using a nib. 
- (void)loadView 
{ 
    UIBarButtonItem *actionButton = [[UIBarButtonItem alloc] initWithTitle:@"Back" style:UIBarButtonItemStylePlain target:self action:@selector(dismissCalendarView)]; 
    self.navigationItem.leftBarButtonItem = actionButton; 
    [actionButton release]; 

    int statusBarHeight = 0; 
    CGRect applicationFrame = (CGRect)[[UIScreen mainScreen] applicationFrame]; 
    self.view = [[[UIView alloc] initWithFrame:CGRectMake(0, statusBarHeight, applicationFrame.size.width, 300.0)] autorelease]; 
    self.view.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight; 
    self.view.backgroundColor = [UIColor clearColor]; 
    self.title = @"Select Workout"; 
    calendar.frame = CGRectMake(0, 0, calendar.frame.size.width, calendar.frame.size.height); 
    NSLog(@"%f height", applicationFrame.size.height); 
    [self.view addSubview:calendar]; 
    [calendar reload]; 
} 

私はこの新しいのViewControllerに直接そのコードを入れた場合、それはUISegmentedControlを尊重し、ちょうど起動時に現れていません。ここで

はUISegmentedConrolのコードです:

- (void)segmentedControl:(SVSegmentedControl*)segmentedControl didSelectIndex:(NSUInteger)index 
{  
    switch (index) 
    { 
     case 0: 
     { 
      [self.view addSubview: tableView1]; 
      tableView1.hidden = NO; 
      calendar.hidden = YES; 
      [calendar removeFromSuperview]; 
      break; 
     } 
     case 1: 
     { 
      [self.view addSubview: calendar]; 
      tableView1.hidden = YES; 
      calendar.hidden = NO; 
      [tableView1 removeFromSuperview]; 
      break; 
     } 
    } 
} 

答えて

0

は、二つの異なるINIT-メソッドを使用していニーズに合わせ?​​または同様にinitWithNibName:@"nib2" ?? それ以外の場合は、もう少し達成したいことを指定する必要があります

関連する問題