当ViewController从iOS中的另一个故事板场景中调用ViewController时,表视图将变得空白(加载或



我的应用包含社交供稿页面。当我从另一个故事板场景中调用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或当前视图控制器从初始视图控制器切换到任何视图控制器。

最新更新