0
私は現在UIPageViewControllerを持っています。そして、同じページにとどまっている間に完了ブロックが終了すると、テキストを変更する必要があります。私はそれをこのようにやってみました:同じページに留まっている間にUIPageViewController内からラベルテキストを変更する方法はありますか?
func addChainedAnimationView (titleLabel: String, descriptionLabel: String){
//
(completion: {(finished) in
DispatchQueue.main.sync {
self.label1?.text = titleLabel
}
})
}
を私はエラーに
EXC_ BAD_命令を取得
これは、ビューコントローラが内蔵されている方法をあなたには、いくつかを無視することができますので、それを短くしていますですパラメータの:
public class WelcomePageView : UIView
{
public var animationStrings : [String]?
public var titleStrings: [String]?
public var descriptionStrings: [String]?
var index: Int = 0
}
var label1 : UILabel?
var label2 : UILabel?
func buildViewControllerWithImage(titleString : String, titleString2 : String?, descriptionString: String, descriptionString2: String?, backgroundImage: String, jsonFile : String, jsonFile2 : String?, index : Int, loopCount: Int, userType: User, isLottieChained: Bool) -> UIViewController
{
let vc : UIViewController = UIViewController(nibName: "WelcomePageView", bundle: Bundle(for: type(of: self)))
(vc.view as? WelcomePageView)!.index = index
vc.view.frame = self.view.frame
var paragraphStyle = NSMutableParagraphStyle()
var label1String = titleString
if(!(label1String.contains("\n"))) {
label1String = "\n"+label1String
}
paragraphStyle = NSMutableParagraphStyle()
paragraphStyle.lineSpacing = 0
paragraphStyle.alignment = .center
paragraphStyle.minimumLineHeight = 24
label1 = (vc.view.viewWithTag(2) as? UILabel)!
label1?.font = UIFont.CustomBold(size: 20)
var attrString = NSMutableAttributedString(string: label1String)
attrString.addAttribute(NSParagraphStyleAttributeName, value:paragraphStyle, range:NSMakeRange(0, attrString.length))
(vc.view.viewWithTag(2) as? UILabel)!.attributedText = attrString
return vc
}
私はこれらの方法:
func getViewControllerWithImage(_ index: Int, userType: User, country: Country) -> UIViewController
{
vc = self.buildViewControllerWithImage(titleString:"FIRST_SCREEN_TITLE".localized, titleString2: nil, descriptionString: "FIRST_SCREEN_DESCRIPTION".localized, descriptionString2: nil, backgroundImage: "fractal_blue", jsonFile: "Welcome_Step_01_V01", jsonFile2: nil, index: index, loopCount: loopCount, userType: userType, isLottieChained: false)
return vc
}
彼らはここに呼ばれています。
public func pageViewController(_ pageViewController: UIPageViewController, viewControllerAfter viewController: UIViewController) -> UIViewController? {
var index : Int = (viewController.view as? WelcomePageView)!.index // currentIndex = index
//currentIndex = index
//(viewController.view as? WelcomePageView)!.index
print ("XXXXX after \(index) XXXXXXX ")
//index = self.currentIndex
index += 1
if (index == maxPages)
{
index = 0
}
return self.getViewControllerWithImage(index, userType: User.newUser, country:
checkCountry())
}