1.在项目的info.plist文件中添加URL Types,如下图所示:
其中idenifier是项目B的bundle id ,URL Schemes 中添加一个命令前缀,我这里使用“projectB”,这个名字可以自己取,运行一下项目B。
2.在项目A中添加跳转代码
//跳转到另一个app
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"projectB://"]];
这里的URL的命令前缀必须和之前自己定义的一致,我把这行代码加到了一个button的点击方法里,现在点击button就可以跳到项目B了。
3.跳转到另一个app的指定界面
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"projectB://openBSecondPage"]];
《1》项目B中在appDelegate中添加一个NSURL的属性,实现一个代理方法接收从项目A传过来的URL
-(BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)url
{
self.url = url;
return YES;
}
《2》然后在B中第一个界面加上代码
- (void)viewDidLoad {
[super viewDidLoad];
NSURL * url = ((AppDelegate *)[UIApplication sharedApplication].delegate).url;
if(url){
//显示一下从A获取的url,url = projectB://openBSecondPage,host = openBSecondPage
//根据传过来的url的host进行一些操作
if ([[url host]isEqualToString:@"openBSecondPage"]) {
//跳转到第二个界面
[self performSegueWithIdentifier:@"second" sender:nil];
}
}