OC: 20160902

01_应用间跳转

- (BOOL)application:(UIApplication *)app openURL:(NSURL *)url options:(NSDictionary *)options {
    NSString * urlString = url.absoluteString;
    NSLog(@"%@", urlString);
    UINavigationController * navCtrl = ( UINavigationController * ) self.window.rootViewController ;
    
    [navCtrl popToRootViewControllerAnimated: NO ];
    // 有些巧妙,
    // 从其他 客户端 进入后, 不退出。  从多任务 窗口 调用 其他客户端 再此 进入, 用 UINavigationController 返回 到 上一级 窗口, 非常正常地 一步 到位。
    // 有意思。 好像 手机里的 有些应用 有这方面 问题。
    
    ViewController * ctrl = [navCtrl.viewControllers firstObject ];
    // 不是 lastObject
    
    NSArray * array = [urlString componentsSeparatedByString: @"?" ];
    if (array.count > 1) {
        NSString * sourceUrlString = array[1];
        ctrl.scheme = sourceUrlString ;
    }
    if ( [urlString containsString: @"session" ] ) {
        [ctrl performSegueWithIdentifier: @"session"   sender: nil ];
    } else if ( [urlString containsString: @"timeline" ] ) {
        [ctrl performSegueWithIdentifier: @"timeline"   sender: nil ];
    }
    return YES;
    }




上 错误
我从TestKitchen, 跳转到weixin; 从weixin 上, 跳不回去。
因为我 没有 传值。
我的代码

- (IBAction)sessionAction:(id)sender {
    NSURL * url = [NSURL URLWithString: @"weChat://session?" ];// ?  后面, 没东西。
    [[UIApplication sharedApplication ] openURL:url ];
}


- (IBAction)timelineAction:(id)sender {
    NSURL * url = [NSURL URLWithString: @"weChat://timeline?" ];// ?  后面, 没东西。
    [[UIApplication sharedApplication ] openURL:url ];
}

老师的 代码


//微信好友
- (IBAction)sessionAction:(id)sender {
    
    NSURL *url = [NSURL URLWithString:@"wechat://session?kitchen"];
    
    [[UIApplication sharedApplication] openURL:url];
}

//微信朋友圈
- (IBAction)timelineAction:(id)sender {
    
    NSURL *url = [NSURL URLWithString:@"wechat://timeline?kitchen"];
    
    [[UIApplication sharedApplication] openURL:url];
}

你可能感兴趣的:(OC: 20160902)