当从iOS中的另一个情节提要场景调用viewController时,表视图变为空白(加载或重建)
我的应用程序包含社交提要页面。当我从另一个情节提要场景调用提要viewController时,提要页面表变为空白当从iOS中的另一个情节提要场景调用viewController时,表视图变为空白(加载或重建),ios,swift,xcode,uitableview,uiviewcontroller,Ios,Swift,Xcode,Uitableview,Uiviewcontroller,我的应用程序包含社交提要页面。当我从另一个情节提要场景调用提要viewController时,提要页面表变为空白 let feedPage: UIViewController = UIStoryboard(name:"ActivityFeed",bundle:nil).instantiateInitialViewController()! let window :UIWindow = UIApplication.shared.keyWindow! window.rootViewControll
let feedPage: UIViewController = UIStoryboard(name:"ActivityFeed",bundle:nil).instantiateInitialViewController()!
let window :UIWindow = UIApplication.shared.keyWindow!
window.rootViewController = feedPage
window.makeKeyAndVisible()
下面提到的代码是从另一个故事板场景调用feed viewController
let feedPage: UIViewController = UIStoryboard(name:"ActivityFeed",bundle:nil).instantiateInitialViewController()!
let window :UIWindow = UIApplication.shared.keyWindow!
window.rootViewController = feedPage
window.makeKeyAndVisible()
从另一个情节提要场景调用提要页面时我观察到,提要页面正在被重新创建,所以表也在被重新创建。
当我在同一个故事板中切换不同的场景时,这个问题不会发生。
我是iOS新手,如果有人有任何线索,请帮助我
提要页面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
}
您正在从另一个情节提要场景调用“活动提要”(activity feed),假设是主视图场景,则将该主视图情节提要场景作为x代码中的初始视图控制器 x代码->单击主视图控制器->侧控制台/类检查器->勾选初始视图控制器 无需为生成根视图控制器添加代码 然后使用segue或present view controller从初始视图控制器切换到它工作的任何视图控制器。如果试图设置RootView控制器,请使用: 在didFinishLaunchingWithOptions中更新代码,如下所示 我当时做了什么改变 设置窗口的框架:你错过了哪个 只需从另一个VC加载一个VC: 如果您试图从您不需要的其他VC加载ActivityFeed VC 要设置应用程序的rootView控制器,您只需 如果你是一个风投
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.makeyAndVisible
显示ActivityFeed中的代码VCI已添加viewDidLoad方法代码。请检查。@Mukesh Gami:请查看我必须在其中添加此函数的答案func application\uApplication:UIApplication,didFinishLaunchingWithOptions launchOptions:[UIApplicationLaunchOptions:[UIApplicationLaunchOptions:Any]?->Bool@mukesh-gami:这是设置应用程序的rootViewController rootViewController是启动应用程序时加载的初始视图控制器,如果您试图从另一个VC加载viewController,则不需要设置rootViewController@mukesh如果你愿意,请考虑接受答案,谢谢Sandeep。但我的问题是ActivityFeed中的表视图正在被重新创建。正因为如此,它被封锁了一段时间。
if let feedPage = UIStoryboard(name:"ActivityFeed",bundle:nil).instantiateInitialViewController() {
self.navigationController?.pushViewController(vc, animated: true)
}