先看看效果,很简单的东西
swift版:
sb里建立这样的控制器
别忘了设置storyboard ID
分别设置三个button的tag为101,102,103
@IBAction func BtnClick(sender: UIButton) { switch sender.tag { case 101: let redVC = storyboard?.instantiateViewControllerWithIdentifier("redVC") //先通过storyboard ID取得对应的ViewController self.navigationController?.pushViewController(redVC!, animated: true) //通过push方法压栈 case 102: let orangeVC = storyboard?.instantiateViewControllerWithIdentifier("orangeVC") self.navigationController?.pushViewController(orangeVC!, animated: true) case 103: let blueVC = storyboard?.instantiateViewControllerWithIdentifier("blueVC") self.navigationController?.pushViewController(blueVC!, animated: true) default: break } }
OC版:
.h文件中定义一个UIViewController
@property(nonatomic,assign)UIViewController *con;
.m文件中
- (IBAction)clicked:(UIButton *)sender { switch (sender.tag) { case 101: _con = [self.storyboard instantiateViewControllerWithIdentifier:@"redVC"]; [self.navigationController pushViewController:_con animated:YES]; break; case 102: _con = [self.storyboard instantiateViewControllerWithIdentifier:@"blueVC"]; [self.navigationController pushViewController:_con animated:YES]; break; default: break; } }
思路都是一样的,其中一般每个ViewController都有对应的类,上面的通过storyboard id初始化一个VC的时候可以这样写