Skip to content

Instantly share code, notes, and snippets.

View iamidzic's full-sized avatar

Ivan Amidžić iamidzic

  • Superology
  • Osijek, Croatia
View GitHub Profile
@iamidzic
iamidzic / PresentOrPush.swift
Last active April 20, 2021 12:14
Present/Push SwiftUI view in VC
// Present hostingController
let hostingController = UIHostingController(rootView: SettingsView())
present(hostingController, animated: true, completion: nil)
// Push hostingController
let hostingController = UIHostingController(rootView: SettingsView())
navigationController?.pushViewController(hostingController, animated: true)
@iamidzic
iamidzic / SearchBar.swift
Last active March 11, 2021 19:06
SearchBar for SwiftUI
struct SearchBar: UIViewRepresentable {
@Binding var text: String
class Coordinator: NSObject, UISearchBarDelegate {
@Binding var text: String
init(text: Binding<String>) {
_text = text
}
@iamidzic
iamidzic / SettingsChildView.swift
Created March 11, 2021 17:45
SettingsChildView
private func addSettingsView() {
let settingsView = SettingsView()
let hostingController = UIHostingController(rootView: settingsView)
addChild(hostingController)
view.addSubview(hostingController.view)
hostingController.view.translatesAutoresizingMaskIntoConstraints = false
hostingController.view.leadingAnchor.constraint(equalTo: view.leadingAnchor).isActive = true
hostingController.view.topAnchor.constraint(equalTo: view.topAnchor).isActive = true
hostingController.view.trailingAnchor.constraint(equalTo: view.trailingAnchor).isActive = true
@iamidzic
iamidzic / SettingsViewController.swift
Created March 11, 2021 09:55
HostingViewController example
import SwiftUI
class SettingsViewController: UIHostingController<SettingsView> {
override init(rootView: SettingsView) {
super.init(rootView: rootView)
tabBarItem = UITabBarItem(title: "Settings", image: UIImage(systemName: "gearshape"), selectedImage: UIImage(systemName: "gearshape.fill"))
}
required init?(coder aDecoder: NSCoder) {