2017-02-27 6 views
1

これはあまりにも野心的に思えるかもしれませんが、別のアプリ(どちらも私が作った)で1つのアプリからビューコントローラーを表示する機能を模索しています。私はクラスを再利用することについて話しているわけではありません。私は、文字通り、他のプロセスのコントローラを最前のものから提示することを指しています。別のアプリからUIViewControllerを表示することはできますか?

私はこれがmacOS上のXPCの領域であり、共有機能拡張が現在iOS上でどのように機能しているかと思います。残念ながら、私は共有コントローラを探していません。

これはすべて可能です(必要な場合はプライベートAPIを使用しています)。

+0

再利用されたView Controllerは、他のプロセスまたはそれを提示するアプリケーションによって制御されると思いますか? –

+0

@ReinSpijkermanそれは他のプロセスによって制御される必要があります。 – Ricky

答えて

1

両方のアプリがiOSによってサンドボックス化されているため、どちらのアプリも他のアプリケーションを見つけて読み込む方法がありません。拡張機能は、Appleが別のアプリに何らかのアクションを実行させるために提供される唯一の方法です。

プライベートAPIを使用してもサンドボックスの制限は解除されません。 jailbrokenデバイスでは、他のアプリを見つけることが可能です。この場合、-[NSBundle loadClassNamed:]は、ロードされた(アプリケーション)バンドルからクラスを取得してインスタンス化することができますが、インスタンス化したプロセスによって制御されます。

他のユーザーに配布されるアプリでは、あなた自身が尋ねることは現実的に不可能です。それが自分のためだけのものであれば、脱獄されたデバイス上のプロセス間の作成、制御、および通信に関する多くの作業を行うことができます。

0

独自のサーバーをお持ちの場合はこれが可能です。 app1にあなたのサーバにトリガを送信させてから、あなたのサーバはあなたのapp2にプッシュ通知を送信します。ユーザーの通知をタップすると、app2ビューコントローラーが開きます。

+1

私は同様のことを考えましたが、URLスキームを活用しています。 – Ricky

+0

それは間違いなく動作します。ウルアプリと幸運。 :D – GeneCode

関連する問題