StoryBoard与xib的互相调用
首先新建一个工程命名为StoryBoardExample,完成以后向项目同添加一个类,创建的时候勾选上xib复选框,我们命名为LoginViewController,在LoginViewController上面拖放一个Button,修改Text为Login,我们再向工程中添加一个
StoryBoard,命名为Detail,完成以后向其中拖放一个viewcontroller,同时新建一个类,DetailViewController,继承自UIViewController,执行刚刚拖放上来的UIViewController,至此我们所需要的文件以及类添加完成
这样就从一个xib跳转到了StoryBoard,打开Main.storyboard,页面上有一个viewcontroller,打开该viewcontroller指向的类文件,在头部声明点击函数,让界面上的Open Other StoryBoard按钮的点击事件指向声明的函数,代码如下:
这样就从一个StoryBoard打开了另一个StoryBoard
首先新建一个工程命名为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