CARVIEW |
Select Language
HTTP/2 200
date: Thu, 24 Jul 2025 14:51:34 GMT
content-type: text/html; charset=utf-8
vary: X-PJAX, X-PJAX-Container, Turbo-Visit, Turbo-Frame, X-Requested-With,Accept-Encoding, Accept, X-Requested-With
etag: W/"1d092a6619ed7fadc1d52e8bbfe1a8b7"
cache-control: max-age=0, private, must-revalidate
strict-transport-security: max-age=31536000; includeSubdomains; preload
x-frame-options: deny
x-content-type-options: nosniff
x-xss-protection: 0
referrer-policy: no-referrer-when-downgrade
content-security-policy: default-src 'none'; base-uri 'self'; child-src github.githubassets.com github.com/assets-cdn/worker/ github.com/assets/ gist.github.com/assets-cdn/worker/; connect-src 'self' uploads.github.com www.githubstatus.com collector.github.com raw.githubusercontent.com api.github.com github-cloud.s3.amazonaws.com github-production-repository-file-5c1aeb.s3.amazonaws.com github-production-upload-manifest-file-7fdce7.s3.amazonaws.com github-production-user-asset-6210df.s3.amazonaws.com *.rel.tunnels.api.visualstudio.com wss://*.rel.tunnels.api.visualstudio.com objects-origin.githubusercontent.com copilot-proxy.githubusercontent.com proxy.individual.githubcopilot.com proxy.business.githubcopilot.com proxy.enterprise.githubcopilot.com *.actions.githubusercontent.com wss://*.actions.githubusercontent.com productionresultssa0.blob.core.windows.net/ productionresultssa1.blob.core.windows.net/ productionresultssa2.blob.core.windows.net/ productionresultssa3.blob.core.windows.net/ productionresultssa4.blob.core.windows.net/ productionresultssa5.blob.core.windows.net/ productionresultssa6.blob.core.windows.net/ productionresultssa7.blob.core.windows.net/ productionresultssa8.blob.core.windows.net/ productionresultssa9.blob.core.windows.net/ productionresultssa10.blob.core.windows.net/ productionresultssa11.blob.core.windows.net/ productionresultssa12.blob.core.windows.net/ productionresultssa13.blob.core.windows.net/ productionresultssa14.blob.core.windows.net/ productionresultssa15.blob.core.windows.net/ productionresultssa16.blob.core.windows.net/ productionresultssa17.blob.core.windows.net/ productionresultssa18.blob.core.windows.net/ productionresultssa19.blob.core.windows.net/ github-production-repository-image-32fea6.s3.amazonaws.com github-production-release-asset-2e65be.s3.amazonaws.com insights.github.com wss://alive.github.com api.githubcopilot.com api.individual.githubcopilot.com api.business.githubcopilot.com api.enterprise.githubcopilot.com; font-src github.githubassets.com; form-action 'self' github.com gist.github.com copilot-workspace.githubnext.com objects-origin.githubusercontent.com; frame-ancestors 'none'; frame-src viewscreen.githubusercontent.com notebooks.githubusercontent.com; img-src 'self' data: blob: github.githubassets.com media.githubusercontent.com camo.githubusercontent.com identicons.github.com avatars.githubusercontent.com private-avatars.githubusercontent.com github-cloud.s3.amazonaws.com objects.githubusercontent.com release-assets.githubusercontent.com secured-user-images.githubusercontent.com/ user-images.githubusercontent.com/ private-user-images.githubusercontent.com opengraph.githubassets.com copilotprodattachments.blob.core.windows.net/github-production-copilot-attachments/ github-production-user-asset-6210df.s3.amazonaws.com customer-stories-feed.github.com spotlights-feed.github.com objects-origin.githubusercontent.com *.githubusercontent.com; manifest-src 'self'; media-src github.com user-images.githubusercontent.com/ secured-user-images.githubusercontent.com/ private-user-images.githubusercontent.com github-production-user-asset-6210df.s3.amazonaws.com gist.github.com; script-src github.githubassets.com; style-src 'unsafe-inline' github.githubassets.com; upgrade-insecure-requests; worker-src github.githubassets.com github.com/assets-cdn/worker/ github.com/assets/ gist.github.com/assets-cdn/worker/
server: github.com
content-encoding: gzip
accept-ranges: bytes
set-cookie: _gh_sess=ejJsdjbQz4UlFbmcwHFWhFlYr5WBNOeCLd8GkCs%2BIjCOA6bXObMopc%2FU7IShUMKHvkm3%2Fn26RATO3gQMfPpwQhWBbIwgJYlZasRuKOpWFRl5%2FI6QGXcUgGUZVkqQFxpIk6HrhTFRpIIhXAtDsyinkEKdcR4lwJYtZZkwrVdsptKChTZy1yj%2BuzSRajeDRTTf6SW26ok0vgeKG4xH0MDleNADotJNW2mVSAT0g4YJNtRqpfoQws8xPiiYOdnS4eJVJ%2B0sk9CAkxUuChP7tHy3ww%3D%3D--RYdFqVXkIOdjdJ2G--8Mi1GzOQ7W%2F7sp9JK%2BsAVg%3D%3D; Path=/; HttpOnly; Secure; SameSite=Lax
set-cookie: _octo=GH1.1.1245068685.1753368694; Path=/; Domain=github.com; Expires=Fri, 24 Jul 2026 14:51:34 GMT; Secure; SameSite=Lax
set-cookie: logged_in=no; Path=/; Domain=github.com; Expires=Fri, 24 Jul 2026 14:51:34 GMT; HttpOnly; Secure; SameSite=Lax
x-github-request-id: AF7C:B973:2650F:2C74C:68824876
Storyboards integration · AliSoftware/Dip Wiki · GitHub
Skip to content
Navigation Menu
{{ message }}
-
Notifications
You must be signed in to change notification settings - Fork 72
Storyboards integration
Ilya Puchka edited this page Aug 26, 2016
·
8 revisions
If you use storyboards and segues to instantiate view controllers then you don't have an option of constructor injection, because view controller instances will be created by UIKit. But you can still use property injection. To let DependencyContainer
intercept the process of creating view controller and inject its properties you need to follow few steps:
- add Dip-UI extension to your project
pod "Dip-UI"
or github "AliSoftware/Dip-UI"
- in Interface Builder set a user-defined attribute for view controller where you want to inject properties to with name
dipTag
and some unique value
- when you configure container you need to register view controller using the tag value that you used for
dipTag
attribute in Interface Builder. ProvideresolveDependencies
block that will perform property injection (you can also use auto-injection)
container.register(tag: "myVC") { MyViewController() }
.resolvingProperties { container, controller in ... }
- set the container as the one to be used for components created from storyboard (you can use it not only for view controllers but for any
NSObject
that you put on storyboard)
DependencyContainer.uiContainers = [container]
- make your view controller to conform to
StoryboardInstantiatable
. You don't need to add anything to conform to this protocol, because Dip-UI already provides the default implementation forNSObject
(check Dip-UI readme for more info aboutStoryboardInstantiatable
).
extension MyViewController: StoryboardInstantiatable { }
Tip: You can use
Nil
type fordipTag
and register view controller without tag.
You can’t perform that action at this time.