I have searchBarTextDidEndEditing func , but when I want to call searchBar in other func like that
`search.searchBar.showLoading()`
it throw error like that "Value of type 'UISearchBar' has no member 'showLoading'"
searchBarTextDidEndEditing func:
`
func searchBarTextDidEndEditing(_ searchBar: UISearchBar) {
self.search.animationController(forDismissed: self)
self.search.automaticallyShowsSearchResultsController = false
}`
Selecting any option will automatically load the page
Post
Replies
Boosts
Views
Activity
Code below throw error as cannot convert value of type 'EventsTrigger' to expected argument type 'String?, where I miss?
EventsTrigger class:
public class EventsTrigger: NSObject {
static let instance: EventsTrigger = EventsTrigger()
}
and
self.service = NewService("node4", EventsTrigger.instance, err)
When I pod install in terminal it say "[!] Error installing MaterialControls", Cloning into '/var/folders/w_/46rzmwwn0k73x1dtmmqk4m_r0000gn/T/d20210618-4079-1b04w72'...
remote: Repository not found.
fatal: repository 'https://github.com/fpt-software/Material-Controls-For-iOS.git/' not found. Any idea?
I want to use segue programmaticly , but it throw error for
ForgotPasswordEmailCheckController as "Cannot convert value of type 'ForgotPasswordEmailCheckController.Type' to expected argument type 'UIViewController'" Any idea?
ForgotPasswordEmailCheckController:
class ForgotPasswordEmailCheckController: UIViewController, UITextFieldDelegate {
var storyboardId: String {
return (value(forKey: "ForgotPasswordEmailCheck") as? String)!
}
LoginViewController:
@IBAction func forgotPassword(_ sender: Any) {
let mainStoryboard = UIStoryboard(name: "Main", bundle: Bundle.main)
guard let forgotPasswordEmailCheck = mainStoryboard.instantiateViewController(identifier: "ForgotPasswordEmailCheck") as?
ForgotPasswordEmailCheckController else {
print("Not correct password")
return
}
navigationController?.pushViewController(ForgotPasswordEmailCheckController, animated: true)
}
I am use SecondView as programmatically, I am click the button in ViewController and open SecondView controller, but I want to back to ViewController. I do not have storyboard in SecondView and I want to click the closeButton and back to ViewController. My code work but when I click the close button it is not work. Any idea?
import UIKit
class SecondView: UIViewController {
var closeButton = UIButton()
override func viewDidLoad() {
super.viewDidLoad()
closeButton.addTarget(self, action: #selector(dismissActionSheet), for: .touchUpInside)
}
@objc func dismissActionSheet() {
self.navigationController?.popViewController(animated: true)
}
}
I want to use segue when I click the forget password icon , Iit may open "ForgotPasswordEmailCheckController" view, my code is running but it throw error like "Terminating app due to uncaught exception 'NSUnknownKeyException', reason: '[<MyApp.LoginViewController 0x7fa962b13730> setValue:forUndefinedKey:]: this class is not key value coding-compliant for the key forgotPassword.'" I don't know why?
ForgotPasswordEmailCheckController:
class ForgotPasswordEmailCheckController: UIViewController, UITextFieldDelegate {
var storyboardId: String {
return (value(forKey: "ForgotPasswordEmailCheckController") as? String)!
}
LoginViewController:
@IBAction func forgotPassword(_ sender: Any) {
let mainStoryboard = UIStoryboard(name: "Main", bundle: Bundle.main)
guard let forgotPasswordEmailCheckCotroller = mainStoryboard.instantiateViewController(identifier: "ForgotPasswordEmailCheckController") as?
ForgotPasswordEmailCheckController else {
print("Not correct password")
return
}
navigationController?.pushViewController(forgotPasswordEmailCheckCotroller, animated: true)
}
I have custom bottom navigation bar in IOS application, everythings work very well, and I want to change bottom navigation items tint color when I click the items, and I was use the
self.imgView.image!.withRenderingMode(.alwaysTemplate)
self.imgView.tintColor = .red
in isSelected, and it is change whole icons border tint color. I do not know where I miss, any idea?
RootStackTabViewController:
class RootStackTabViewController: UIViewController {
@IBOutlet weak var bottomStack: UIStackView!
var currentIndex = 0
lazy var tabs: [StackItemView] = {
var items = [StackItemView]()
for _ in 0..<5 {
items.append(StackItemView.newInstance)
}
return items
}()
lazy var tabModels: [BottomStackItem] = {
return [
BottomStackItem(title: "Home", image: "home"),
BottomStackItem(title: "Favorites", image: "heart"),
BottomStackItem(title: "Search", image: "search"),
BottomStackItem(title: "Profile", image: "user"),
BottomStackItem(title: "Settings", image: "settings")
]
}()
override func viewDidLoad() {
super.viewDidLoad()
self.setupTabs()
}
func setupTabs() {
for (index, model) in self.tabModels.enumerated() {
let tabView = self.tabs[index]
model.isSelected = index == 0
tabView.item = model
tabView.delegate = self
self.bottomStack.addArrangedSubview(tabView)
}
}
}
StackItemView:
protocol StackItemViewDelegate: AnyObject {
func handleTap(_ view: StackItemView)
}
class StackItemView: UIView {
@IBOutlet weak var titleLabel: UILabel!
@IBOutlet weak var imgView: UIImageView!
@IBOutlet weak var highlightView: UIView!
private let higlightBGColor = UIColor(hexString: "1160FB")
static var newInstance: StackItemView {
return Bundle.main.loadNibNamed(
StackItemView.className(),
owner: nil,
options: nil
)?.first as! StackItemView
}
weak var delegate: StackItemViewDelegate?
override func awakeFromNib() {
super.awakeFromNib()
self.addTapGesture()
}
var isSelected: Bool = false {
willSet {
self.updateUI(isSelected: newValue)
self.titleLabel.textColor = UIColor.white
self.imgView.image!.withRenderingMode(.alwaysTemplate)
self.imgView.tintColor = .red
}
}
var item: Any? {
didSet {
self.configure(self.item)
}
}
private func configure(_ item: Any?) {
guard let model = item as? BottomStackItem else { return }
self.titleLabel.text = model.title
self.imgView.image = UIImage(named: model.image)
self.isSelected = model.isSelected
}
private func updateUI(isSelected: Bool) {
guard let model = item as? BottomStackItem else { return }
model.isSelected = isSelected
let options: UIView.AnimationOptions = isSelected ? [.curveEaseIn] : [.curveEaseOut]
UIView.animate(withDuration: 0.4,
delay: 0.0,
usingSpringWithDamping: 1.0,
initialSpringVelocity: 0.5,
options: options,
animations: {
self.titleLabel.text = isSelected ? model.title : ""
let color = isSelected ? self.higlightBGColor : .white
self.highlightView.backgroundColor = color
(self.superview as? UIStackView)?.layoutIfNeeded()
}, completion: nil)
}
}
extension StackItemView {
func addTapGesture() {
let tapGesture = UITapGestureRecognizer(target: self,
action: #selector(handleGesture(_:)))
self.addGestureRecognizer(tapGesture)
}
@objc
func handleGesture(_ sender: UITapGestureRecognizer) {
self.delegate?.handleTap(self)
}
}
I have number.name array like 1.go, 2.java, 3.swift etc..and I do not want to edit the number again, user will only change name. Is it possible?
if words.count == 24 {
for (index, textField) in textFields.enumerated() {
textField.delegate = self
textField.firstDesign()
textField.text = "\(index + 1). \(words[index])"
mneArr.append(words[index])
}
I want to use searchbar for name, but it is throw an arror like " Value of type 'Text' has no member 'searchable'" any idea?
@State private var searchText = ""
Text(data.name)
.font(.custom("Helvetica Neue", size: 14))
.searchable(text: $searchText)
I have TabView in ContentView and I want to add TabView for OnboardingView in OtherView, every things work, but it is throw error for TabView in OtherView like "Trailing closure passed to parameter of type 'Int' that does not accept a closure" I do not know why? Any idea?
ContentView:
struct TabView : View {
var body: some View{
VStack(spacing: 0){
.......
}
OtherView:
VStack {
TabView {
ForEach(onboardingData) { onboardingItem in
OnboardingCard(onboardingItem: onboardingItem)
}
}
.tabViewStyle(PageTabViewStyle(indexDisplayMode: .automatic))
.indexViewStyle(PageIndexViewStyle (backgroundDisplayMode:
.always))
.foregroundColor(.white)
}
I have list image and when I click the image list items it show me image details, but it show same image even I click the different image? any idea?
Datas:
struct Datas: Identifiable {
var id = UUID().uuidString
var name: String
var detail: String
var image: String
}
var datas = [
Datas(name: "People1.jpg"),
Datas(name: "People.2jpg"),
Datas(name: "People3.jpg"),
]
RowView:
struct RowView: View {
var docs: Datas
var body: some View {
NavigationLink(destination: ListDetailsView(docs: datas[0])) {
Image(docs.image)
.resizable()
.frame(width: 64, height: 48)
}
}
ListDetailsView:
struct ListDetailsView: View {
var docs: Datas
var body: some View {
ZStack{
Image(docs.image)
}
}
}
struct ListDetailsView_Previews: PreviewProvider {
static var previews: some View {
ListDetailsView(docs: datas[0])
}
}
I have project in SwiftUI 2.0 and I want to update it for Swift 3.0, is it possible to do that?
I have bottom navigation bar and in fist view I have list item, when I click the list item, it is open detail view, but bottom navigation bar still stay in detail view, I want to hide navigation bar when I click open the detail view. Is it possible?
ContentView:
struct TabView : View {
@State private var selection = 0
@State var index = 0
var body: some View{
VStack(spacing: 0){
ZStack{
ListView()
.opacity(self.index == 0 ? 1 : 0)
}
HStack{
Button(action: {
self.index = 0
}) {
HStack(spacing: 6){
Image("List")
.foregroundColor(self.index == 0 ? Color("blue") : .black)
if self.index == 0{
Text("List")
.foregroundColor(Color("blue"))
}
}
.padding(.vertical,10)
.padding(.horizontal)
.background(self.index == 0 ? Color("tabbar-background") : Color.clear)
.clipShape(Capsule())
}
Spacer(minLength: 0)
Button(action: {
self.index = 1
}) {
HStack(spacing: 6){
Image("SecondList")
.foregroundColor(self.index == 1 ? Color("blue") : .black)
if self.index == 1{
Text("SecondList")
.foregroundColor(Color("blue"))
}
}
.padding(.vertical,10)
.padding(.horizontal)
.background(self.index == 1 ? Color("tabbar-background"): Color.clear)
.clipShape(Capsule())
}}}
.edgesIgnoringSafeArea(.bottom)
}
}
ListView:
struct ListView: View {
var body: some View {
VStack{
ScrollView(.vertical, showsIndicators: false, content: {
VStack(spacing: 15){
RowView(docs: docs)
}
}
}
}
}
}
struct RowView: View {
@State var docs: Datas
var body: some View {
HStack(spacing: 15){
NavigationLink(destination: ListDetailView(docs: docs)) {
HStack{
Image(docs.image)
.resizable()
.frame(width: 64, height: 48)
}
}
}
.padding(.horizontal)
}
}
ListDetailView:
import SwiftUI
struct ListDetailView: View {
@State var docs: Datas
var body: some View {
ZStack{
Image(docs.image)
.resizable()
.aspectRatio(contentMode: .fit)
}
}
}
struct ListDetailView_Previews: PreviewProvider {
static var previews: some View {
ListDetailView(docs: datas[0])
}
}
The default colour of a list row when tapped is grey.
I try many solution on stackoverflow and apple form, I did not solve problem, any idea?
RecentRowView:
struct RecentRowView: View {
var body: some View {
HStack(spacing: 15){
List{
NavigationLink(destination: SecondView()
){
VStack{
HStack{
VStack(alignment: .leading, spacing: 8, content: {
Text(recent.name)
.font(.custom("Helvetica Neue", size: 14))
})
Spacer(minLength: 10)
ZStack {
}
}
}
}
}
}
}
}
I have data in row like Text(data.user) and I want to use searchable for it, I can use search bar, bat I want to use filter for user.
Text(data.user)
.searchable(text: $searchText, placement: .navigationBarDrawer)
like here, tere is some example for filter, but how can I use it for my data. Any idea?
.onChange(of: searchText) { searchText in
if !searchText.isEmpty {
articles = sampleArticles.filter { $0.title.contains(searchText) }
} else {
articles = sampleArticles
}
}