2012-02-13 2 views
1

все.При переключении просмотров tabBar исчезает. ЗАЧЕМ?

Я создаю приложение TabBar с двумя видами (ScrollView и TableView).

При запуске приложения появляется кнопка TabBar и может изменять два вида.

Я запрограммировал кнопку в TableView для изменения ScrollView, а просмотр - сменой. , но TabBar исчезает.

Кто-то, пожалуйста, помогите! советую мне.

применение изображения: http://www.0502.me/help/xcode_why.png

Item View Controller (TableView)

#import "FirstViewController.h" 
#import "SecondViewController.h" 

@implementation FirstViewController 

- (void)didReceiveMemoryWarning 
{ 
    [super didReceiveMemoryWarning]; 
    // Release any cached data, images, etc that aren't in use. 
} 

#pragma mark - View lifecycle 

- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 
    // Do any additional setup after loading the view, typically from a nib. 
} 

- (void)viewDidUnload 
{ 
    [super viewDidUnload]; 
    // Release any retained subviews of the main view. 
    // e.g. self.myOutlet = nil; 
} 

- (void)viewWillAppear:(BOOL)animated 
{ 
    [super viewWillAppear:animated]; 
} 

- (void)viewDidAppear:(BOOL)animated 
{ 
    [super viewDidAppear:animated]; 
} 

- (void)viewWillDisappear:(BOOL)animated 
{ 
    [super viewWillDisappear:animated]; 
} 

- (void)viewDidDisappear:(BOOL)animated 
{ 
    [super viewDidDisappear:animated]; 
} 

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation 
{ 
    // Return YES for supported orientations 
    if ([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPhone) { 
     return (interfaceOrientation != UIInterfaceOrientationPortraitUpsideDown); 
    } else { 
     return YES; 
    } 
} 

- (IBAction)pageOne:(id)sender { 
//Below code is switch View 
    SecondViewController *secondView = [self.storyboard instantiateViewControllerWithIdentifier:@"SecondView"]; 
    [self presentModalViewController:secondView animated:YES]; 
} 

- (IBAction)pageTwo:(id)sender { 
} 

- (IBAction)pageThree:(id)sender { 
} 
@end 

Second View Controller (ScrollView)

#import "SecondViewController.h" 

@implementation SecondViewController 

- (void)didReceiveMemoryWarning 
{ 
    // Releases the view if it doesn't have a superview. 
    [super didReceiveMemoryWarning]; 

    // Release any cached data, images, etc that aren't in use. 
} 


#pragma mark - View lifecycle 

-(void)pageLoad:(UIScrollView *)scrollView { 
    currentPage = scrollView.contentOffset.x/scrollView.bounds.size.width; 
    int pageWidth = self.view.frame.size.width; 
    int pageHeight = self.view.frame.size.height; 

    prevPage.frame = CGRectMake(
           pageWidth * (currentPage - 1), 
           0, 
           pageWidth, 
           pageHeight 
           ); 
    if (currentPage > 0) { 
     [prevPage setImage:[NSString stringWithFormat:@"%d", (currentPage - 1) % kPageNum]]; 
     prevPage.hidden = NO; 
    } else { 
     prevPage.hidden = YES; 
    } 

    currPage.frame = CGRectMake(
           pageWidth * currentPage, 
           0, 
           pageWidth, 
           pageHeight 
           ); 

    [currPage setImage:[NSString stringWithFormat:@"%d", currentPage % kPageNum]]; 
    currPage.hidden = NO; 

    nextPage.frame = CGRectMake(
           pageWidth * (currentPage + 1), 
           0, 
           pageWidth, 
           pageHeight 
           ); 


    if (currentPage < (kPageNum - 1)) { 
     [nextPage setImage:[NSString stringWithFormat:@"%d", (currentPage + 1) % kPageNum]]; 
     nextPage.hidden = NO; 
    } else { 
     nextPage.hidden = YES; 
    } 

} 


// Implement viewDidLoad to do additional setup after loading the view, typically from a nib. 
- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 

    UIScrollView *scrollView = [[UIScrollView alloc] init]; 

    scrollView.frame = self.view.bounds; 
    scrollView.contentSize = CGSizeMake(self.view.frame.size.width * kPageNum, self.view.frame.size.height); 
    scrollView.pagingEnabled = YES; 
    [self.view addSubview:scrollView]; 

    scrollView.delegate = self; 

    prevPage = [[PageView alloc] initWithFrame:self.view.bounds]; 
    [scrollView addSubview:prevPage]; 

    currPage = [[PageView alloc] initWithFrame:self.view.bounds]; 
    [scrollView addSubview:currPage]; 

    nextPage = [[PageView alloc] initWithFrame:self.view.bounds]; 
    [scrollView addSubview:nextPage]; 

    [self pageLoad:scrollView]; 
} 

- (void)scrollViewDidScroll:(UIScrollView *)scrollView { 
    CGFloat position = scrollView.contentOffset.x/scrollView.bounds.size.width; 
    CGFloat delta = position - (CGFloat)currentPage; 

    if (fabs(delta) >= 1.0f) { 
     [self pageLoad:scrollView]; 
    } 
} 

- (void)viewDidUnload 
{ 
    [super viewDidUnload]; 
    // Release any retained subviews of the main view. 
    // e.g. self.myOutlet = nil; 
} 

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation 
{ 
    // Return YES for supported orientations 
    return (interfaceOrientation == UIInterfaceOrientationPortrait); 
} 

@end 

ответ

2

Вы представляете его как модальный вид. Если я понимаю ваш вопрос, вы просто хотите переключить выбранный элемент в UITabBar. Вы можете сделать это так:

self.tabBarController.selectedIndex = index; 

где индекс представляет собой целое число, представляющее индекс UIViewController вы хотите переключиться. В вашем случае это выглядит как индекс. 0.

+0

Спасибо edc1591, я переписываю код, а затем переключаю коллектив! –

Смежные вопросы