1、 按钮拉线跳转,直接跳转,经常结合prepareForSegue的方法来实现跳转之前的一些动作(如:传参)
(1)先给建立的连接线segue起个名字“fansSegue”
-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender{
if ([segue.identifier isEqualToString:@"fansSegue"]) {
TDFansTableViewController *tdfans = (TDFansTableViewController *)segue.destinationViewController;
//将当前页面的user传递给下一个页面的tdfans.user
tdfans.user = self.user;
}
2、tabbar纯代码创建的跳转
(1)其中Home和Position是storyboard的名字
UIStoryboard * storyboard1 = [UIStoryboard storyboardWithName:@"Home" bundle:nil];
UINavigationController * homeVC = [storyboard1 instantiateInitialViewController];
[self addChildViewController:homeVC];
UIStoryboard * storyboard2 = [UIStoryboard storyboardWithName:@"Position" bundle:nil];
UINavigationController * positionVC = [storyboard2 instantiateInitialViewController];
[self addChildViewController:positionVC];
//跳转传参
UIStoryboard *CameraStoryBoard = [UIStoryboard storyboardWithName:@"Camera" bundle:nil];
TDEditingCurrentTravelDiaryViewController *vc = [CameraStoryBoard instantiateViewControllerWithIdentifier:@"TDEditingCurrentTravelDiaryVC"];
[self.navigationController pushViewController:vc animated:YES];
//将diary_id传递给TDCameraViewController中的参数
vc.diaryId = responseDic[@"data"];
3、presentViewController:(效果是从下往上)两句代码的区别在于,效果不一样,记住pop和push的效果是横向的就行,简单一句话:(其中nv是指要presentview出来的某一个视图控制器)
[self presentViewController: vc animated:YES completion:nil];
4、代码加建立连接的跳转:对于tableviewController有两种情况:一是:创建一个cell,为其建立一个连接跳转到另一个视图控制器,连接是直接建立在cell上的,这种方法经常用到一个方法:
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{
UIStoryboard * storyboard5 = [UIStoryboard storyboardWithName:@"Personal" bundle:nil];
UINavigationController * personalNV = [storyboard5 instantiateInitialViewController];
TDPersonalViewController * personalVC = (TDPersonalViewController *)personalNV.topViewController;
personalVC.user = [[TDUser alloc]init];
personalVC.user.user_id = [self.follow_id intValue];
[self.navigationController pushViewController:personalVC animated:YES];
}
二是:从当前要跳转的视图控制器中的整个视图控制器拉一条连接线到下一个视图控制器中,
在didselectrowatindexpath中写,
并且在建立的连接线上为其命名:(在StoryBoard Segue的identifier中给它一个名字personalMessageSegue)
-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{
if (indexPath.section == 0 && indexPath.row == 0) {
[self performSegueWithIdentifier:@"personalMessageSegue" sender:nil];
}
}