当前位置: 代码迷 >> Iphone >> 关于在多个View窗口切换的有关问题
  详细解决方案

关于在多个View窗口切换的有关问题

热度:59   发布时间:2016-04-25 06:30:51.0
关于在多个View窗口切换的问题,请教大家
新建了一个single view application的工程,添加了4个其它的view,想做到在这几个view窗口中自由切换,不知道能不能实现,还是新手,请教大家了
每个窗口中5个按钮,这样方便切换到其它的视图

#import <UIKit/UIKit.h>
#import "FirstViewController.h"
#import "SecondViewController.h"
#import "ThirdViewController.h"
#import "FourViewController.h"
@interface ViewController : UIViewController
- (IBAction)gotoFirstView:(id)sender;
- (IBAction)gotoSceondView:(id)sender;
- (IBAction)gotoThirdView:(id)sender;
- (IBAction)gotoFourView:(id)sender;
@property (retain, nonatomic) FirstViewController *firstViewController;
@property (retain, nonatomic) SecondViewController *secondViewController;
@property (retain, nonatomic) ThirdViewController *thirdViewController;
@property (retain, nonatomic) FourViewController *fourViewController;
@end

上面是主View中的代码
点击每个BUTTON以后的代码如下
- (IBAction)gotoFirstView:(id)sender {
  if (self.firstViewController == nil) {
  firstViewController = [[FirstViewController alloc]initWithNibName:@"FirstViewController" bundle:nil];
  [self.view addSubview:firstViewController.view];
   
   
  }else {
  [self.view addSubview:firstViewController.view];//重新显示第一个窗口
  }
}

- (IBAction)gotoSceondView:(id)sender {
  if (self.secondViewController == nil) {
  secondViewController = [[SecondViewController alloc]initWithNibName:@"SecondViewController" bundle:nil];
  [self.view addSubview:secondViewController.view];
  }
}

- (IBAction)gotoThirdView:(id)sender {
  if (self.thirdViewController == nil) {
  thirdViewController = [[ThirdViewController alloc]initWithNibName:@"ThirdViewController" bundle:nil];
  [self.view addSubview:thirdViewController.view];
  }
}

- (IBAction)gotoFourView:(id)sender {
  if (self.fourViewController == nil) {
  fourViewController = [[FourViewController alloc]initWithNibName:@"FourViewController" bundle:nil];
  [self.view addSubview:fourViewController.view];
  }
}
用这样的方式我能切换到其它的窗口

在FirstViewController中要切回主窗口我用以下代码
- (void)viewDidLoad
{
  [super viewDidLoad];
  // Do any additional setup after loading the view from its nib.
  NSLog(@"FirstViewDisplay");
}
- (void) viewWillAppear:(BOOL)animated{
  NSLog(@"FirstViewDisplay viewWillAppear");
}
- (void)viewDidUnload
{
  [super viewDidUnload];
  // Release any retained subviews of the main view.
  // e.g. self.myOutlet = nil;
  NSLog(@"FirstViewRemove");
}

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
  return YES;
}

- (IBAction)gotoMainView:(id)sender {//将第一个窗口移除
   
  [self.view removeFromSuperview];
}

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

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

- (IBAction)gotoFourView:(id)sender {
   
}
这样我可以实现跟主FirstView跟主View的切换
 第一次切换到FirstViewController的viewDidLoad函数会调用一下
有没有办法每次切换到FirstViewController窗口的时候有消息通知呢
还有就是切换回主View的时候也有消息通知,因为主View的viewDiidLoad也只会调用一次,以后再切换就不会调用

想实现这5个按钮VIEW间的相互切换,以及有消息通知,请教各位前辈了



------解决方案--------------------
我有一个例子,留下邮箱发给你,只实现了视图的切换,还没有传递消息
  相关解决方案