Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/firebase/6.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 导航回UITabbarController主屏幕时视图控制器视图放置错误_Ios_Uitabbarcontroller_Uistoryboard_Uistoryboardsegue - Fatal编程技术网

Ios 导航回UITabbarController主屏幕时视图控制器视图放置错误

Ios 导航回UITabbarController主屏幕时视图控制器视图放置错误,ios,uitabbarcontroller,uistoryboard,uistoryboardsegue,Ios,Uitabbarcontroller,Uistoryboard,Uistoryboardsegue,我的应用程序中有一个tabbarcontroller,并在情节提要和segues的帮助下添加了视图控制器 当我在第二个tabbar项中时,我有一个表视图,其中嵌入了一个导航控制器,其中填充了用户名,顶部有一个汉堡包图标,我从汉堡包图标中的表列表中选择一个特定项,并导航到我使用过的segues的详细视图控制器,下面给出了相同的代码 self.performSegueWithIdentifier("MY_DETAIL_SEGUE_NAME", sender: nil) MY_DETAIL_SEGU

我的应用程序中有一个tabbarcontroller,并在情节提要和segues的帮助下添加了视图控制器

当我在第二个tabbar项中时,我有一个表视图,其中嵌入了一个导航控制器,其中填充了用户名,顶部有一个汉堡包图标,我从汉堡包图标中的表列表中选择一个特定项,并导航到我使用过的segues的详细视图控制器,下面给出了相同的代码

self.performSegueWithIdentifier("MY_DETAIL_SEGUE_NAME", sender: nil)
MY_DETAIL_SEGUE_NAME实际上是
SWRevealViewControllerSeguePushController
的自定义推送序列,推送工作正常,我可以导航到详细信息屏幕

问题:由于我在点击后退按钮的第二个选项卡栏项目中,我需要显示第二个选项卡栏项目的初始视图/主视图控制器,即朋友视图列表,因此在后退按钮上,我在详细信息屏幕中编写了以下代码

  @IBAction func moveBackToController(sender: AnyObject) {
        self.performSegueWithIdentifier("showFriendListPage", sender: nil)
    }
    override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
    // Get the new view controller using segue.destinationViewController.
    // Pass the selected object to the new view controller.
    let objParentTabbar = segue.destinationViewController as! ParentTabbarController
    if segue.identifier == "showFriendListPage" {
    objParentTabbar.selectedIndex = 1
    }
}
showFriendListPage:这是一个使用
SWRevealViewControllerSeguePushController的firendlist页面的自定义序列,指向tabbarcontroller

为了突出显示第二个选项卡项,我使用了在详细信息屏幕中编写的以下代码

  @IBAction func moveBackToController(sender: AnyObject) {
        self.performSegueWithIdentifier("showFriendListPage", sender: nil)
    }
    override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
    // Get the new view controller using segue.destinationViewController.
    // Pass the selected object to the new view controller.
    let objParentTabbar = segue.destinationViewController as! ParentTabbarController
    if segue.identifier == "showFriendListPage" {
    objParentTabbar.selectedIndex = 1
    }
}
这里发生的情况是,当我导航回第二个选项卡项的主屏幕时,我的视图被扭曲,即UI元素没有按照第一次转到第二个选项卡项时的正确顺序放置

注意:所有“我的视图”控制器都嵌入到导航控制器中,因此结构是

TabbarController----->NavigationController------>ViewController

请建议我哪里出了问题,需要做些什么来解决这个问题,我唯一的困难是视图被扭曲了,我真的不知道为什么会发生这种情况。

通过应用程序中的代码调用视图您的控制器应该做到这一点

objParentTabbar.selectedViewController?.viewWillAppear(true)