Я представляю Xib-файл, который является подвью в контроллере представления, контроллер вида вызывается setViewController в диспетчере просмотра страниц. Он отлично работает. Затем я поместил один и тот же вид представления Xib в контроллер вида, вызываемый моим контроллером представления вкладок, и он не отображает.Xib-файл отображается при вызове моего контроллера просмотра страницы, но не как вкладка
Чтобы попытаться дойти до конца этого странного события, я удалил весь код, чтобы в обоих случаях не было класса, связанного с родителем UIviewcontroller для subview Xib. Теперь это чистая реализация IB Xib, а классы Xib идентичны.
Таким образом, при сравнении между двумя реализациями единственное различие заключается в том, что один открывается с контроллера просмотра страницы, а другой с вкладки. Я даже скопировал рабочий контроллер, так что я знал, что они идентичны.
У кого-нибудь был этот опыт (где тот же Xib не отображает в одном рабочем процессе по сравнению с другим) или не имеет идеи, почему две реализации приводят к разным результатам?
Обновление: Я сделал это еще на один шаг. Теперь нет абсолютно никакого кода. Единственное, что есть в Xib, это непривязанная метка. Он отображается только тогда, когда родительский вид вызывается из контроллера просмотра страницы! Wtf
Signin View Xib. (Работает, когда экземпляр из UIPageViewController:
SigninView.swift
class SigninView: UIView, GIDSignInUIDelegate, GIDSignInDelegate {
var view: UIView!
var nibName: String = "SigninView"
var delegate: SigninViewDelegate?
@IBOutlet weak var googleButton: GIDSignInButton!
@IBOutlet weak var signoutButton: UIButton!
override init(frame: CGRect) {
// properties
super.init(frame: frame)
// Set anything that uses the view or visible bounds
setup()
}
override func awakeFromNib() {
print("AWAKING!")
}
@IBAction func tapSignOut(sender: AnyObject) {
GIDSignIn.sharedInstance().signOut()
UserManager().logout()
self.updateDisplay()
}
required init?(coder aDecoder: NSCoder) {
// properties
super.init(coder: aDecoder)
// Setup
setup()
}
func setup() {
view = loadViewFromNib()
GIDSignIn.sharedInstance().uiDelegate = self
GIDSignIn.sharedInstance().delegate = self
view.frame = bounds
view.autoresizingMask = [UIViewAutoresizing.FlexibleWidth, UIViewAutoresizing.FlexibleHeight]
addSubview(view)
self.updateDisplay()
}
func updateDisplay() {
self.googleButton.layer.hidden = false
}
func loadViewFromNib() -> UIView {
let bundle = NSBundle(forClass: self.dynamicType)
let nib = UINib(nibName: nibName, bundle: bundle)
let view = nib.instantiateWithOwner(self, options: nil)[0] as! UIView
return view
}
func signIn(signIn: GIDSignIn!, presentViewController viewController: UIViewController!) {
//present vc on delegate
let delegateVC = self.delegate as! UIViewController
delegateVC.presentViewController(viewController, animated: true, completion: nil)
}
func signIn(signIn: GIDSignIn!, dismissViewController viewController: UIViewController!) {
print("Dismiss view controller")
let delegateVC = self.delegate as! UIViewController
delegateVC.dismissViewControllerAnimated(true, completion: nil)
self.updateDisplay()
}
func signIn(signIn: GIDSignIn!, didSignInForUser user: GIDGoogleUser!, withError error: NSError!) {
var success = false
if (user != nil) {
print("signed in? UID: \(user.userID), email: \(user.profile.email), name: \(user.profile.name), pic: \(user.profile.imageURLWithDimension(150))")
UserManager().createUser(user)
LocalDataStorage().saveContext()
success = true
} else {
print("User not signed in.")
}
self.updateDisplay()
if self.delegate != nil && self.delegate!.signInComplete != nil {
self.delegate!.signInComplete!(success)
}
}
func signIn(signIn: GIDSignIn!, didDisconnectWithUser user: GIDGoogleUser!, withError error: NSError!) {
print("disconnected")
}
}
Рабочая UIViewController, который содержит рабочую подвид зарегистрировались
Работа звонок от UIPageViewController
let vc = UIStoryboard(name: "Intro", bundle: nil).instantiateViewControllerWithIdentifier("IntroPage2")
setViewControllers([getSlide(index)],direction: .Forward,animated: true,completion: nil)
UIViewController называется из вида вкладок, что не делает для входа в аккаунт подтаблицы
Вам нужно будет опубликовать код, чтобы мы могли видеть, что может вызвать проблему. –
@CleverError Code и просмотры добавлены. <* пальцы скрещены *> – Sean
Это, вероятно, какая-то тривиальная ошибка. Не могли бы вы поделиться всем проектом? – Sulthan