IOS StoryBoard与xib互调

本文详细介绍了如何在iOS应用开发中实现故事板(Storyboard)与XIB文件之间的互相调用,包括创建工程、添加类与界面组件、设置根视图控制器以及界面间的跳转流程。
StoryBoard与xib的互相调用
首先新建一个工程命名为StoryBoardExample,完成以后向项目同添加一个类,创建的时候勾选上xib复选框,我们命名为LoginViewController,在LoginViewController上面拖放一个Button,修改Text为Login,我们再向工程中添加一个
StoryBoard,命名为Detail,完成以后向其中拖放一个viewcontroller,同时新建一个类,DetailViewController,继承自UIViewController,执行刚刚拖放上来的UIViewController,至此我们所需要的文件以及类添加完成

然后以后界面以及目录结构如下图:

首先打开AppDelegate页面,引入LoginViewController.h头文件,然后设置LoginViewController做为应用程序的根viewcontroller,代码如下:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    // Override point for customization after application launch.
    
    //如果不设置起始页面,可以使用如下方式设置起始页面
    //使用StoryBoard初始化根界面
    //UIStoryboard *storyBoard =[UIStoryboard storyboardWithName:@"Main" bundle:nil];
    //self.window.rootViewController = [storyBoard instantiateInitialViewController];
    
    
    self.window =[[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
    LoginViewController *loginviewcontroller =[[LoginViewController alloc] initWithNibName:@"LoginViewController" bundle:nil];
    self.window.rootViewController = loginviewcontroller;
    [self.window makeKeyAndVisible];
    return YES;
}
这样就设置好了应用程序的根viewcontroller,然后打开LoginViewController.h,声明一个Login登陆的函数,然后让界面Login的点击事件指向该函数,代码如下:

#import <UIKit/UIKit.h>

@interface LoginViewController : UIViewController

-(IBAction)BtnLogin:(id)sender;

@end
-(void)BtnLogin:(id)sender{
    UIStoryboard *storyboard =[UIStoryboard storyboardWithName:@"Main" bundle:nil];
    [self presentViewController:[storyboard instantiateInitialViewController] animated:YES completion:nil];
}

这样就从一个xib跳转到了StoryBoard,打开Main.storyboard,页面上有一个viewcontroller,打开该viewcontroller指向的类文件,在头部声明点击函数,让界面上的Open Other StoryBoard按钮的点击事件指向声明的函数,代码如下:

#import <UIKit/UIKit.h>

@interface LTViewController : UIViewController


-(IBAction)BtnOpenOtherStoryBoard:(id)sender;

@end

-(void)BtnOpenOtherStoryBoard:(id)sender{
    UIStoryboard *storyboard =[UIStoryboard storyboardWithName:@"Detail" bundle:nil];
    [self presentViewController:[storyboard instantiateInitialViewController] animated:YES completion:nil];
}

这样就从一个StoryBoard打开了另一个StoryBoard


代码下载


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值