Ich habe derzeit einen UIPageViewController und ich brauche es, um Text zu ändern, sobald ein Abschlussblock beendet wird, während er auf der gleichen Seite bleibt. Ich habe versucht, es auf diese Weise tun:Gibt es eine Möglichkeit, einen Etikettentext innerhalb eines UIPageViewControllers zu ändern, während er auf derselben Seite bleibt?
func addChainedAnimationView (titleLabel: String, descriptionLabel: String){
//
(completion: {(finished) in
DispatchQueue.main.sync {
self.label1?.text = titleLabel
}
})
}
aber ich erhalte eine Fehlermeldung
EXC_ BAD_ BETRIEB
Dies ist, wie die View-Controller gebaut werden, es verkürzt ist, so dass Sie einige außer Acht lassen können der Parameter:
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
}
ich sie auf diese Weise erhalten:
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
}
Sie sind hier genannt:
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())
}