0

我正在我的大学学习 Android 编程课程,但老师允许我做 IOS,但我必须实施相同的项目。这个项目是有两个应用程序。第一个应用程序是以前作业中的颜色选择器。第二个应用程序是调用颜色选择器并允许用户选择一种颜色,完成后也将其返回第二个应用程序以显示。

我在我的 ColorPicker 中定义了一个自定义 URL 方案,它工作正常。在我的第二个应用程序中,我有一个 changeColor 按钮,它具有以下 IBAction 方法。

- (IBAction)colorChangePressed:(UIButton *)sender {

    UIApplication *test = [ UIApplication sharedApplication ];    
    BOOL found =
    [ test openURL:[ NSURL URLWithString:@"colorPicker://" ] ];

    if (found) NSLog( @"Resource was found" );

    else NSLog(@"unable to locate resource" );
}

这确实启动了颜色选择器应用程序,它的行为符合预期。我的问题是,在选择了颜色后,如何使用所选颜色返回调用应用程序?我将在我的 colorPicker 中添加一个完成按钮,以便在用户完成颜色选择后单击,我将捕获我需要的值,但我不知道如何将这些数据返回给调用应用程序。我需要实现一些协议/委托模式吗?

完整的代码在 git hub 上。https://github.com/jnels124/CS390H

提前感谢您对如何解决我的问题的任何见解。

4

2 回答 2

2

您需要两个应用程序都具有独特的方案。编码方案app1并将其用作app1->app2URL 的一部分。完成app2后,您将拥有一个app2->app1URL,使用它打开app1并发送所需的信息(编码)。

这类似于您在app2Intent 中添加了一个名为app1Intent 的额外字符串,但您使用 URL 并根据需要对其进行解析而不是 Intent。

于 2013-10-11T00:08:10.297 回答
0

我在另一个项目中定义了一个自定义方案,如第一个答案中所述,但我不确定如何在被调用的 URL 中生成查询字符串并将其返回给调用应用程序进行解析。我在下面的帖子中解决了这个问题。

使用自定义 URL 方案将 NSArray 传递给其他应用程序的语法

于 2013-10-11T19:42:43.227 回答