从App Delegate打开导航控制器

时间:2017-09-28 14:53:31

标签: ios swift swift3 appdelegate

我已经实施了一个URL方案,用于在付款后重定向回我的应用程序。当网页直接返回我的应用程序时,该应用程序应该打开导航控制器 over 当前视图。 (所以打开模态)。

如何在func application(_ application: UIApplication, open url: URL, sourceApplication: String?, annotation: Any) -> Bool方法的AppDelete中执行此操作?

提前致谢!

2 个答案:

答案 0 :(得分:2)

您是在使用故事板还是在代理中手动创建窗口?如果您有权访问该窗口,则可以执行以下操作:

s.pte = 'event110,event111,event112,event113,event114,event115,event116,event117,event118,event119'
//[--------------------------- 1 to 8 ---------------------------][-- 9 --][- 10 -]
s.ptc = false;

/*****Plugin Section*******/   

s.usePlugins = true

function s_doPlugins(s) {

_satellite.notify("doPlugins fired:" + document.readyState);

/* Previous Page Name */
s.prop55 = s.eVar77 = s.getPreviousValue(s.pageName, 's_ppn');

/* Percent Page Viewed */
/* Pre-requisite: Previous Page Name */
var ppv = s.getPercentPageViewed(s.pageName); //get array of data on prev page % viewed
if (ppv && typeof ppv == 'object' && ppv[0] == s.prop55) { //if ppv array returned and prev page id matches prev page name
    s.prop56 = s.eVar78 = ppv[1] + '|' + ppv[2];
}

/* Time Parting Tracking */
var tp = s.getTimeParting('n', '-7');
s.prop44 = s.eVar55 = tp;

/* Performance Timing */
s.eVar77 = s.getPreviousValue(s.pageName, 'gpv_v77', ''); //Record the previous page name in the designated eVar of your choice
//s.performanceTiming('list2') //List variable if one is neededd
/* Pre-requisite: Previous Page Name */

}

否则,它应该适用于所有情况:

window?.rootViewController?.present(yourViewController, animated: true, completion: nil)

答案 1 :(得分:1)

如果提交请求的视图控制器是应该显示模式的视图控制器,我建议采用不同的方法。我建议在通知中心定义一个用于通知当前视图控制器的通知。

在视图控制器中,拨打其中一个通知中心方法,例如addObserver(forName:object:queue:using:),以观察您的通知。

然后,当您获得预期的网址时,从您的应用代表的Notification实施中调用post(name:object:)方法application(_:open:options:)