Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
当从iOS中的另一个情节提要场景调用viewController时,表视图变为空白(加载或重建)_Ios_Swift_Xcode_Uitableview_Uiviewcontroller - Fatal编程技术网

当从iOS中的另一个情节提要场景调用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

我的应用程序包含社交提要页面。当我从另一个情节提要场景调用提要viewController时,提要页面表变为空白

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)
}