質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Objective-C

Objective-Cはオブジェクト指向型のプログラミング言語のひとつです。C言語をベースにSmalltalkが取り入れられています。

iOS

iOSとは、Apple製のスマートフォンであるiPhoneやタブレット端末のiPadに搭載しているオペレーションシステム(OS)です。その他にもiPod touch・Apple TVにも搭載されています。

Xcode

Xcodeはソフトウェア開発のための、Appleの統合開発環境です。Mac OSXに付随するかたちで配布されています。

Q&A

解決済

1回答

5490閲覧

URL scheme を使って自作の他のアプリに値を渡して起動させたい。

bananafish

総合スコア65

Objective-C

Objective-Cはオブジェクト指向型のプログラミング言語のひとつです。C言語をベースにSmalltalkが取り入れられています。

iOS

iOSとは、Apple製のスマートフォンであるiPhoneやタブレット端末のiPadに搭載しているオペレーションシステム(OS)です。その他にもiPod touch・Apple TVにも搭載されています。

Xcode

Xcodeはソフトウェア開発のための、Appleの統合開発環境です。Mac OSXに付随するかたちで配布されています。

0グッド

0クリップ

投稿2016/06/27 01:14

自作アプリAのtextfieldの値をbutton押下時に自作アプリBを起動させlabelに表示させたいです。

現状ではただBを起動させることまでしかできていません、B側ではURL typeのURL schemeをtestと設定しています,Identifierなどは何も設定していません。
A側では
NSURL *url = [NSURL URLWithString:@"test:"];
[[UIApplication sharedApplication] openURL:url];
と書いています。
@"test:"の:以降にどのように書けばいいのわかりません、どなたかよろしくお願いします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

URLスキームでTextFieldの値を渡し、相手のアプリのLabelに表示するところまで確認しました。
試してみてください。

呼び出す側
ViewController.m

Objective

1#import "ViewController.h" 2 3@interface ViewController () 4// テキストフィールド 5@property (weak, nonatomic) IBOutlet UITextField *myTextField; 6@end 7 8@implementation ViewController 9 10- (IBAction)pushSchemeButton { 11 12 NSString *schemeName = @"Scheme"; 13 NSString *text = _myTextField.text; 14 15 // URLスキームでアプリを呼び出す(TextFieldの文字列を渡す) 16 NSString *url = [NSString stringWithFormat:@"%@://%@", schemeName, text]; 17 BOOL canOpen = [[UIApplication sharedApplication] canOpenURL:[NSURL URLWithString:url]]; 18 if (canOpen) { 19 [[UIApplication sharedApplication] openURL:[NSURL URLWithString:url]]; 20 } 21} 22@end

呼び出される側
AppDelegate.h

#import <UIKit/UIKit.h> @interface AppDelegate : UIResponder <UIApplicationDelegate> @property (strong, nonatomic) UIWindow *window; @property (strong, nonatomic) NSString *schemeMessage; @end

AppDelegate.m

objective

1#import "AppDelegate.h" 2 3@implementation AppDelegate 4 5- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { 6 return YES; 7} 8 9- (BOOL)application:(UIApplication *)app openURL:(NSURL *)url options:(NSDictionary<NSString *,id> *)options { 10 11 self.schemeMessage = [url host]; 12 return YES; 13} 14 15@end

ViewController.m

objective

1#import "ViewController.h" 2#import "AppDelegate.h" 3 4@interface ViewController () 5 6// 表示する為のラベル 7@property (weak, nonatomic) IBOutlet UILabel *label; 8 9@end 10 11@implementation ViewController 12 13- (void)viewWillAppear:(BOOL)animated { 14 [super viewWillAppear:animated]; 15 16 // ラベルにTextを設定 17 AppDelegate *appDelegete = [[UIApplication sharedApplication] delegate]; 18 self.label.text = appDelegete.schemeMessage; 19} 20@end

投稿2016/06/27 04:20

_Kentarou

総合スコア8490

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

bananafish

2016/06/27 06:02

助かります、うまくいきました。 呼び出される側のAppDelegateとViewControllerの連携の部分がダメだったようです。 ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問