我有一个包含5个项目的tabbar 如果用户按下第三个对象,我试图弹出一个弹出窗口。 该弹出窗口将超过其当前屏幕,而不移至其他屏幕。 然后,一旦用户按下其中一个弹出选项,它将把它们移至下一个屏幕。 或者,他们可以在弹出窗口外按,然后将其关闭。

我不确定要这样做。 我已在下面附上一张图片,以获取您想要得到的信息(弹出窗口周围有红色框)。 我该如何实施? 在此处输入图片说明

/// EDIT ///函数TabBar shouldSelect方法似乎是我应该使用的东西,但是当我尝试按简单的print语句来实现它时,按下该按钮不起作用。

#1楼 票数:0

更好的方法是使用操作表,而不是带有两个按钮的弹出框。

从标签栏项目3到ViewController的插座,确保将Connection设置为Action,并为函数命名,在本示例中,我将其称为“ presentCameraAndPhotos”

@IBAction func presentCameraAndPhotos(_ sender: Any) {
      var alert = UIAlertController(title: "Foo", message: "Bar", preferredStyle: .actionSheet)

    alert.addAction(UIAlertAction(title: "Camera", style: .default) { _ in
        //Do whatever it is you want to do when camera is selected 
        self.performSegue(withIdentifier: "CameraVCSegueID", sender: self)
    })

    alert.addAction(UIAlertAction(title: "Photos", style: .default) { _ in
        //Do whatever it is you want to do when photos is selected
        self.performSegue(withIdentifier: "PhotoVCSegueID", sender: self)
    })

   alert.addAction(UIAlertAction(title: "Cancel", style: .cancel, handler: nil)

  present(alert, animated: true, completion: nil)
}

不要忘了准备segues。

如果这是用于iPad,请在VC中为标签栏3项设置一个插座,并使用类似以下的方法:

@IBAction func presentCameraAndPhotos(_ sender: Any) {
      var alert = UIAlertController(title: "Foo", message: "Bar", preferredStyle: .actionSheet)

    alert.addAction(UIAlertAction(title: "Camera", style: .default) { _ in
        //Do whatever it is you want to do when camera is selected 
        self.performSegue(withIdentifier: "CameraVCSegueID", sender: self)
    })

    alert.addAction(UIAlertAction(title: "Photos", style: .default) { _ in
        //Do whatever it is you want to do when photos is selected
        self.performSegue(withIdentifier: "PhotoVCSegueID", sender: self)
    })

   alert.addAction(UIAlertAction(title: "Cancel", style: .cancel, handler: nil)

  alert.modalPresentationStyle = .Popover 
  let popoverPresentation = alert.popoverPresentationController
  popoverPresentation.barButtonItem = //Whatever the outlet name of your tab bar 3 is 
  present(alert, animated: true, completion: nil)
}

  ask by fphelp translate from so

未解决问题?本站智能推荐:

1回复

从TabBar弹出

我目前有一个包含5个对象的标签栏。 我要尝试做的是,如果用户按下第三个对象,则弹出窗口将超过其当前屏幕,而不将其移至另一个屏幕。 然后,一旦用户按下其中一个弹出窗口,它将把它们移到下一个屏幕。 我目前无法使此弹出窗口发生。 我该怎么做呢? 我以素描的形式显示了我的意思(弹出窗口周围有一
2回复

iPhoneX上的TabBar控制器

我现在这是重复的问题,但是没有任何解决方案可以解决我的问题。 我是IOS的新手,并且在我的项目中使用Swift 4使用TabBar Controller。TabBar可以正常工作,但在Iphone X上存在设计问题。在IphonX上可以进行情节提要预览,但是模拟器和设备会显示设计问题。
1回复

如果tabBar在Swift中隐藏,则隐藏通知点

我的应用程序中有一个通知系统。 当用户收到通知时,他可以在tabBar上带有一个小点来知道它。 我的问题是,当我想隐藏tabBar时,点仍然在这里: 当tabBar隐藏时,我也想隐藏点,但是如果我回到另一个控制器(使用tabBar),则再次显示该点。 您是否知道我该怎么做?
2回复

Swift3:使用UICollectionView创建自定义的TabBar,可以锁定到不同的控制器

我在具有5个单元格的UIView类中创建了一个collectionView。 它看起来像TabBar,但通过collectionView进行操作,我将能够根据自己的喜好对内容进行自定义,对吗? 我在我的appDelegate中设置了这个menuBar,因此它将位于每个视图的顶部。 我的问题
3回复

隐藏的TabBar有时会在该位置显示黑色视图

我的VC有一个tabBarController,当我在tableView中滚动时要隐藏/显示取决于滚动。 我已经实现了以下方法: 但我认为这与self.mainCollectionView.frame.size.height = self.mainCollectionView.frame
1回复

用户更改角色后如何重新加载选项卡栏项目

点击按钮时,应用程序用户可以在两个角色(用户和管理员)之间切换。 在我的tabBarViewController的viewDidLoad方法中, 加载视图时更改前两个选项卡栏项。 在用户点击按钮以更改角色的anotherViewController中, MainTabBarView
1回复

如何从一个tabBarController子视图移动到swift3.0中的另一个Tabbar控制器

我有一个tabBarController ,它在Tab 3上有三个标签,我有一个ViewController,它还有一个子节点。 但是从UITabBarController索引3的那个Child ViewController我想要移动到UITabBarController索引1如何做那个善解释
2回复

iOS-注销后重置UITabBarController/UIViewController状态

用户从我的应用程序注销后,必须显示登录屏幕以允许其他登录。 用户可能会改变,所以我将不得不再次出现主屏幕。 上面有一个像我一样的代码: 问题 在重新登录后显示我的主屏幕后 , mainViewController的最后一个状态似乎没有改变,包含其他用户的数据,我不希望这样。 有