- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
在我制作的应用程序中,我试图启用登录/注销到 Twitter。我想要它以便有一个 barbuttonitem 如果没有当前用户则说登录,或者如果有一个则说注销。我在 Storyboard上创建了两个按钮,一个用于登录,一个用于注销。在 viewDidLoad() 中,我有这段代码:
self.navigationItem.rightBarButtonItem = nil
self.navigationItem.rightBarButtonItem = nil
if twitterUser.currentUser != nil {
print("there is a current user")
self.navigationItem.rightBarButtonItem = logoutButton
} else {
self.navigationItem.rightBarButtonItem = loginButton
}
它似乎运作良好。当用户实际登录或注销时,问题就来了。这些按钮连接到以下功能:
@IBAction func onLogin(sender: AnyObject) {
let client = twitterAPI.sharedInstance
client.login({ () -> () in
self.navigationItem.rightBarButtonItem = nil
self.navigationItem.rightBarButtonItem = self.logoutButton
}) { (error: NSError) -> () in
print(error.localizedDescription)
}
}
@IBAction func onLogout(sender: AnyObject) {
twitterAPI.sharedInstance.logout()
self.navigationItem.rightBarButtonItem = nil
self.navigationItem.rightBarButtonItem = self.loginButton
}
登录后登录按钮会消失,但注销按钮不会出现。注销时,注销按钮消失但登录按钮不出现。我不确定是什么原因造成的,因为我在 viewDidLoad 中使用了相同的方法并且它似乎工作正常。
最佳答案
这段代码可能对你有帮助
override func viewDidLoad()
{
super.viewDidLoad()
barButton = UIBarButtonItem(title: "Login", style: UIBarButtonItemStyle.Done, target: self, action: "barBtnAction:")
barButton.tag = 0
self.navigationItem.rightBarButtonItem = barButton
}
@IBAction func barBtnAction(sender:UIBarButtonItem)
{
let shouldLogin: Bool = sender.tag == 0 ? true : false
if shouldLogin
{
//your code here
onLogin()
}
else
{
//your code here
onLogout()
}
}
func onLogin()
{
barButton.title = "Logout"
barButton.tag = 1
}
func onLogout()
{
barButton.title = "Login"
barButton.tag = 0
}
关于ios - BarButtonItem 未显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36045541/
我有一个在 TextView 中显示一些信息的屏幕,我希望用户能够编辑它。 现在,我在导航栏的右侧有一个编辑按钮,我在代码中创建如下: UIBarButtonItem *editButton = [
我有一个嵌入在 UINavigationController 中的 UITableView。我在 Storyboard中设置了一个 rightBarButtonItem 。如果我以正常方式继续,一切都
我想要自定义导航项目作为 facebook 应用程序。有两个按钮和一个 UISearchBar。按钮是 leftBarButtonItem 和 rightBarButtonItem。 UISearch
我的屏幕底部有一个工具栏。我想在上面有两个按钮,一个在左侧,一个在右侧。然而,与导航栏不同的是,有多个点并不位于导航栏的每一侧,而是从左到右彼此相邻堆叠。 我尝试使用固定分隔符,但是随着方向和设备的变
在 iOS 上,如果您没有手动在导航堆栈中设置栏按钮项目,则会为您添加一个带有前一个 Controller 的标题和后退箭头的项目。我只想保留箭头。例如如果我以前的 Controller 的标题是 H
我只是遇到了一个小问题。我找到这段代码: MKUserTrackingBarButtonItem *trackingButton = [[MKUserTrackingBarButtonItem all
我在右侧有一个简单的 + 按钮,用于将行添加到我的 tableView,但是该按钮没有出现。我是这样实现的 let AddButton = UIButton() AddButton.s
在我制作的应用程序中,我试图启用登录/注销到 Twitter。我想要它以便有一个 barbuttonitem 如果没有当前用户则说登录,或者如果有一个则说注销。我在 Storyboard上创建了两个按
我在整个项目中使用这段代码来更新我的 UIBarButtonItem 的标题。 在这个特定的类中,我有一个 NSFetchedResultsController,我想获取它的计数以设置为按钮的标题。
我得到了以下代码: - (id)init { if (self = [super init]) { self.title = @"please wait"; UIBarBu
我可以使用 setBackgroundVerticalPositionAdjustment 更改自定义栏按钮项的 y,但是如何更改水平位置? [viewController.navigationIte
我在我的导航 Controller 上制作了一个自定义栏按钮项目,它工作正常,但现在不行了。这是我用来制作自定义栏按钮的行: func addSlideMenuButton(){ l
如何转换此代码以使该按钮出现在工具栏中? : navigationItem.rightBarButtonItem = editButtonItem() 最佳答案 试试这个, let barBu
我想将 barButtonItem 添加到 tabBar 上,这样我就不必在屏幕顶部使用导航 Controller 。 我的 ViewController 嵌入到 tabBarController 中
这是我在 SO 上发表的第一篇文章。我是一名参加代码学校的程序员新手。 我的问题是我有一个用 Swift 编写的 iOS 应用程序。初始 View Controller 是一个带有嵌入式 TableV
是否可以更改 UINavigationBar 上的后退按钮并更改标题? 当我尝试设置 customView 属性时,我在默认按钮旁边看到了一张图片。 我用这个代码 self.navigationIte
如何更改按钮上的标题? 最佳答案 如果这来自导航 Controller ,则设置父 VC 的标题会将按钮的标题设置为该字符串值。 关于iphone - 更改 BarButtonItem 的标题,我们在
我有一个像这样初始化的按钮> self.button = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemI
我需要以模态方式显示 PDF 文件,当我的用户单击某些按钮时,我将 PDF 加载到类中并以模态方式呈现它,现在我需要在 modalVC 上为用户提供 ab 按钮以关闭或返回所以我添加了RightBar
出于某种原因,当我将背景图像应用到 UIBarButtonItem 时,它会使角变成尖锐的矩形。如何使用 UIAppearance 解决这个问题? // bar button id barB
我是一名优秀的程序员,十分优秀!