all.
I’m making app TabBar with two views(ScrollView and TableView).
When application launched, TabBar button appear, and can change two views.
I programmed push button in TableView to change ScrollView, and view is change.
but TabBar is disappear.
someone, please help! advice me.
application image:
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
You’re presenting it as a modal view. If I understand your question, you just want to switch the selected item in your
UITabBar. You can do that like this:Where index is an integer representing the index of the
UIViewControlleryou want to switch to. In your case, it looks like index should be 0.