Если я вас правильно понимаю, вы хотите запустить свое приложение в состоянии, когда оно находится в контроллере целевого представления. Этот ответ не применяется, если приложение уже запущено.
Прежде всего, вам нужно создать экземпляр контроллера панели вкладок. Это вернет всю иерархию, которую вы создали в файле раскадровки. Свойство viewControllers
вашего UITabBarController
будет содержать три UINavigationController
, которые вы настроили для своих разных вкладок. Первый навигационный контроллер - тот, который связан с вашей домашней вкладкой. Затем вы можете манипулировать свойством viewControllers
объекта UINavigationController
, чтобы изменить начальный стек контроллеров представления. UINavigationController
всегда будет отображать последний, поэтому в этом примере thirdVc
- это тот, который показан на домашней вкладке.
func setupAppFromDeeplink() {
let tabBarController = UIStoryboard(name: "Main", bundle: nil).instantiateViewController(withIdentifier: "tabBar") as! UITabBarController
let homeNavigationController = tabBarController.viewControllers?.first as! UINavigationController
let firstVc = UIViewController()
let secondVc = UIViewController()
let thirdVc = UIViewController()
homeNavigationController.viewControllers = [firstVc, secondVc, thirdVc]
window!.rootViewController = tabBarController
}
Вы не сможете передавать данные через сегменты с этим подходом, как и вы. Назначьте данные, которые будут отображаться в контроллере вида при настройке firstVc
и т. Д.
Хорошо это крачки Python всегда загружает dll в том же каталоге как pyd файл, независимо от того, на что установлены Python и пути OS.
, Таким образом, я должен был скопировать _sqlite3.pyd от python/v2.5/DLLS до моего каталога приложений, где новый sqlite3.dll, заставляя его загрузить мой новый dll, а не тот, который идет с Python (так как pyd файлы, кажется, следуют за PYTHONPATH, даже при том, что фактические dlls сами не делают).
Если Вы говорите о модуле Python DLLs, то просто изменение sys.path
должно быть прекрасным. Однако, если Вы говорите о DLLs , связанном против тех DLLs; т.е. libfoo.dll
, который foo.pyd
зависит от, затем необходимо изменить переменную окружения PATH. Я записал приблизительно выполнение этого для PyGTK только что , но в Вашем случае я думаю, что это должно быть столь же просто как:
import os
os.environ['PATH'] = 'my-app-dir' + os.pathsep + os.environ['PATH']
, Который вставит my-app-dir
во главе Вашего пути Windows, которому я верю также, управляет порядком загрузки на DLLs.
Имеют в виду, что необходимо будет сделать это прежде, чем загрузить рассматриваемый DLL, т.е. прежде, чем импортировать что-либо интересное.
sqlite3 может быть чем-то вроде особого случая, тем не менее, так как он распределяется с Python; это очевидно довольно хитро для тестирования этого быстро, таким образом, я не проверил sqlite3.dll
конкретно.
Если Ваша версия sqlite будет в sys.path прежде системная версия, то это будет использовать это. Таким образом, можно или поместить его в текущий каталог или измениться PYTHONPATH
переменная среды, чтобы сделать это.