我的应用包含社交供稿页面。当我从另一个故事板场景中调用Feed ViewController时,Feed Page表越来越空白。
代码下面是从另一个故事板场景中调用feed ViewController。
let feedPage: UIViewController = UIStoryboard(name:"ActivityFeed",bundle:nil).instantiateInitialViewController()!
let window :UIWindow = UIApplication.shared.keyWindow!
window.rootViewController = feedPage
window.makeKeyAndVisible()
我从另一个故事板场景中从呼叫供稿页面上观察到的是,正在重新创建feed页面,因此还重新创建了表。当我在同一故事板中切换不同的场景时,这个问题不会发生。我是iOS的新手,如果有人得到任何线索,请提供帮助。
feed Page Page ViewDidload方法:
override func viewDidLoad() {
super.viewDidLoad()
//createTable()
print("viewDidLoad:ActivityPage")
facebookLoginHandler = FacebookLogin(controller: self)
screenWidth = UIScreen.main.bounds.width
screenHeight = UIScreen.main.bounds.height
screenScale = UIScreen.main.scale
if screenScale == 3{
screenScale = 2
}else if screenScale == 1{
screenScale = 1.23
}else if screenScale == 2{
if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiom.pad){
screenScale = 1
}else{
screenScale = 2
}
}
DispatchQueue.main.async {
ActvityFeedNetwork.getActivityFeedFromServer(viewController: self)
}
tableView.delegate = self
tableView.dataSource = self
if userLoggedIn {
statusBarNotSignedIn.removeFromSuperview()
navigationBar.topItem!.title = "Activity Feed"
}
else {
statusBarSignedIn.removeFromSuperview()
}
effect = visualEffectView.effect
visualEffectView.effect = nil
visualEffectView.alpha = 0
visualEffectView.backgroundColor = UIColor.black
}
如果要设置rootviewController的使用:
在didFinishLaunchingWithOptions
中更新代码为
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
// Override point for customization after application launch.
let window = UIWindow(frame: UIScreen.main.bounds)
let feedPage: UIViewController = UIStoryboard(name:"ActivityFeed",bundle:nil).instantiateInitialViewController()!
window.rootViewController = feedPage
window.makeKeyAndVisible()
return true
}
我做了什么变化?
let window = UIWindow(frame: UIScreen.main.bounds)
设置窗口框架:)您错过了
简单地从另一个VC加载一个VC:
如果您想从其他VC加载活动馈送VC,则不需要要设置应用程序的rootview控制器,您需要的就是
如果您仿制地呈现VC,则
if let feedPage = UIStoryboard(name:"ActivityFeed",bundle:nil).instantiateInitialViewController() {
self.present(vc, animated: true, completion: nil)
}
如果要推动VC,则
if let feedPage = UIStoryboard(name:"ActivityFeed",bundle:nil).instantiateInitialViewController() {
self.navigationController?.pushViewController(vc, animated: true)
}
根据您的需求放置上述任何代码,然后删除
让窗口:uiwindow = uiapplication.shared.keywindow! window.rootviewcontroller = feedPage
window.makekeyandvisible()
您正在从另一个故事板场景中调用活动提要,假设主视图场景,因此将主视图故事板场景作为x-Code的初始视图控制器作为初始视图控制器X-Code->单击主视图控制器 ->侧控制台/类Inspector-> tick on IS初始视图控制器。
无需添加制作root View Controller的代码
,然后使用SEGUE或当前视图控制器从初始视图控制器切换到任何视图控制器。