It’s the partial of code
I can put up the complete code if you’d like, however it’s too lengthy…
closing class FirstVC: UIViewController {
non-public lazy var scrollView: UIScrollView
non-public lazy var scrollBackgroundView: UIView
non-public lazy var writeView: UIView
non-public lazy var categoryStackView: UIStackView
non-public lazy var titleCategoryDateStackView: UIStackView
**non-public lazy var categoryButton: UIButton** = {
let button = UIButton()
button.setTitle("항목", for: .regular)
button.titleLabel?.font = .systemFont(ofSize: 16.0)
button.setTitleColor(.appColor(.baseGray), for: .regular)
button.contentHorizontalAlignment = .main
button.isUserInteractionEnabled = true
button.addTarget(self, motion: #selector(categoryButtonTapped), for: .touchUpInside)
return button
}()
let viewModel = FisrtViewModel()
func bind(_ viewModel: FirstVC) {
viewModel.getCategory
.asObservable()
.subscribe(onNext: { [weak self] class in
guard let self else { return }
self.categoryButton.setTitle(class, for: .regular)
self.categoryButton.isEnabled = true
self.categoryButton.layoutIfNeeded()
self.categoryButton.setNeedsLayout()
print(self.categoryButton.titleLabel?.textual content)
print(self.categoryButton.titleLabel)
})
.disposed(by: disposeBag)
}
}
closing class FisrtVM {
let disposeBag = DisposeBag()
let getCategory: Sign<String>
let giveCategory = PublishSubject<String>()
init() {
getCategory = giveCategory
.map({ str in
print("giveCategory", str)
return str
})
.asSignal(onErrorJustReturn: "Error")
}
}
closing class SecondVC: UIViewController {
let disposeBag = DisposeBag()
let viewModel = SecondVM()
let firstVC = FirstVC()
let class = ["categoryData", "c2", "c3", "c4", "c5"]
func bind(_ viewModel: SecondVM) {
firstVC.bind(viewModel.firstVM)
categoryTableView.rx.itemSelected
.asObservable()
.map { [weak self] indexPath -> String in
self?.dismiss(animated: true)
print("itemSelected", self?.class[indexPath.row])
return self?.class[indexPath.row] ?? ":("
}
.bind(to: viewModel.categorySelected)
.disposed(by: disposeBag)
}
}
closing class SecondVM {
let disposeBag = DisposeBag()
let firstVM = FirstVM()
let categorySelected = PublishSubject<String>()
init() {
categorySelected
.map({ str in
print("categorySelected",str)
return str
})
.bind(to: writeViewModel.giveCategory)
.disposed(by: disposeBag)
}
}
itemSelected Non-compulsory(“categoryData”)
categorySelected categoryData
giveCategory categoryData
Non-compulsory(“categoryData”)
Non-compulsory(<UIButtonLabel: 0x7fd310e1c2d0; body = (0 -10; 0 20); textual content=”categoryData”; opaque = NO; userInteractionEnabled = NO; layer = <_UILabelLayer: 0x6000028b4230>>)
Confirmed that the info is coming into the button
However the view would not replace… why?…
I looked for numerous articles and tried each.
I modified the code dozens of occasions… however it did not work