2016-03-08 126 views
0

这是一个非常受欢迎的问题,但在寻找解决方案的两天中,没有任何工作。ViewController没有segue,swift

我有两个TableView控制器(WeekTableViewController和DiscoverTableViewController),如图所示,由名为“discoverWorkouts”显示的segue链接。 DiscoverTableViewController是PFQueryTableViewController的子类。

enter image description here

enter image description here

在添加通常的功能从WeekTableViewController到DiscoverTableViewController,得到以下讨厌错误到原因请看: “WeekTableViewController:0x1058469c0>)具有标识符没有赛格瑞 'discoverWorkouts' '

我有一个在WeekTableViewController中编程式创建的按钮,这是我的代码

WeekTableViewController:

override func viewDidLoad() { 
     super.viewDidLoad() 

     //transitionManager = TransitionManager(transitionAnimation: .Fade) 
     //transitioningDelegate = transitionManager 


     self.navigationController?.navigationBarHidden = true //Hide the navigation bar 
     //  tabBarController?.tabBar.hidden = false 
     //  self.hidesBottomBarWhenPushed = true 


     //Add a button to the 
     pingbutton = UIButton(type: UIButtonType.Custom) as UIButton 
     pingbutton.frame = CGRectMake(328, 620, 30, 30) 
     pingbutton.setImage(UIImage(named: "discover"), forState: UIControlState.Normal) 
     pingbutton.addTarget(self, action: "pingButtonTapped:", forControlEvents: UIControlEvents.TouchUpInside) 
     pingbutton.hidden = true 

     self.navigationController?.view.addSubview(ping button) 


.... 

} 

//MARK: Button Tapped 
    func pingButtonTapped(sender:UIButton!) 
    { 
     self.performSegueWithIdentifier("discoverWorkouts", sender:self) 
    } 


    override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) { 

if segue.identifier == "openDiscover" { 

      let discoveryView = segue.destinationViewController as! DiscoverTableViewController 
      discoveryView.transitioningDelegate = self.transitionManager 
     } 

    } 

把一个破发点上的 “self.performSegueWithIdentifier(” discoverWorkouts “发件人:个体经营)” 显示,是在错误发生。

我已经试过各种来源:

  • 删除设备上的应用程序,并重新安装。
  • 删除Segue并用不同的名称再次添加它。
  • 重建两个tableViewControllers并再次放置segue。

没有任何工作。

而且在我的应用程序代理,这是WeekTableViewController是如何启动:

func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool { 

     UIApplication.sharedApplication().statusBarStyle = .LightContent 

     //Launch Process 
      let weekView = WeekTableViewController() 
      self.landingNavigationController = UINavigationController(rootViewController: weekView) 
      self.landingNavigationController?.navigationBar.barTintColor = UIColor.blackColor() 
      self.landingNavigationController?.navigationBarHidden = true 

      self.window?.tintColor = UIColor.blackColor() //(red: 0.0, green: 1.0, blue: 30.0/255.0, alpha: 1.0) 
      self.window?.rootViewController = self.landingNavigationController 
//   self.window?.rootViewController = tabBarNavController 
      self.window?.makeKeyAndVisible() 


} 

在世界上什么可能会发生的任何想法。谢谢。 :)

回答

1

如果您想使用它的功能,您必须从故事板中实例化您的ViewController

因此,而不是创建ViewController s ^自己,你应该做这样的事情:

let storyboard = UIStoryboard(name: "MyStoryboardName", bundle: nil) 
self.landingNavigationController = storyboard.instantiateInitialViewController() as! UINavigationController 
// additional setup (optional) 
self.window?.rootViewController = self.landingNavigationController 
self.window?.makeKeyAndVisible() 

这将创建初始ViewController(可能是UINavigationController),因为它在你的故事板的已配置。

+0

非常感谢。它在一个微小的周期内工作。我意识到我的WeekTableViewController没有导航控制器,所以我在其中嵌入了一个,并且您的建议全部解决。 )。 – Gugulethu