ViewController还没有关注,swift
ViewController has no segue, swift
这是一个非常受欢迎的问题,但是我花了两天时间寻找解决方案,但没有任何效果。
我有两个 TableView 控制器(WeekTableViewController 和 DiscoverTableViewController),如名称为 "discoverWorkouts" 的 segue 链接的图片所示。 DiscoverTableViewController 是 PFQueryTableViewController 的子类。
在添加从 WeekTableViewController 到 DiscoverTableViewController 的常用函数时,我收到以下讨厌的错误:
“WeekTableViewController: 0x1058469c0>) 没有标识符 'discoverWorkouts''
我在 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", sender:self)”上打断点表明错误发生的地方。
我尝试了以下所有方法:
- 正在删除我设备上的应用程序并重新安装。
- 删除 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()
}
关于世界上可能发生的事情的任何想法。谢谢。 :)
如果您想使用情节提要的功能,您必须从情节提要中实例化您的 ViewController
。
因此,与其自己创建 ViewController
,不如这样做:
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
),因为它在您的故事板中配置。
这是一个非常受欢迎的问题,但是我花了两天时间寻找解决方案,但没有任何效果。
我有两个 TableView 控制器(WeekTableViewController 和 DiscoverTableViewController),如名称为 "discoverWorkouts" 的 segue 链接的图片所示。 DiscoverTableViewController 是 PFQueryTableViewController 的子类。
在添加从 WeekTableViewController 到 DiscoverTableViewController 的常用函数时,我收到以下讨厌的错误: “WeekTableViewController: 0x1058469c0>) 没有标识符 'discoverWorkouts''
我在 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", sender:self)”上打断点表明错误发生的地方。
我尝试了以下所有方法:
- 正在删除我设备上的应用程序并重新安装。
- 删除 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()
}
关于世界上可能发生的事情的任何想法。谢谢。 :)
如果您想使用情节提要的功能,您必须从情节提要中实例化您的 ViewController
。
因此,与其自己创建 ViewController
,不如这样做:
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
),因为它在您的故事板中配置。