Ios 以编程方式创建带有默认图标的导航项
我想以编程方式创建一个带有默认XCode刷新图标的导航项“刷新”。我知道如何用下面的代码创建一个带有单词“Refresh”的。不过,我想在图标中插入“刷新”一词,感谢您的帮助Ios 以编程方式创建带有默认图标的导航项,ios,swift,uinavigationbar,Ios,Swift,Uinavigationbar,我想以编程方式创建一个带有默认XCode刷新图标的导航项“刷新”。我知道如何用下面的代码创建一个带有单词“Refresh”的。不过,我想在图标中插入“刷新”一词,感谢您的帮助 let refreshButton = UIBarButtonItem(title: "Refresh", style: UIBarButtonItemStyle.Plain, target: self, action: #selector(FollowVC.refresh)) 您应该使用.Refresh,而不是
let refreshButton = UIBarButtonItem(title: "Refresh", style: UIBarButtonItemStyle.Plain, target: self, action: #selector(FollowVC.refresh))
您应该使用
.Refresh
,而不是使用.Plain
let refreshButton=UIBarButtonItem(barButtonSystemItem:.Refresh,target:self,action:#选择器(FollowVC.Refresh))
您还应该使用
init(barButtonSystemItem:target:action:)
而不是init(title:style:target:action:)
<
您在编码中犯的错误是
首先你
let refreshButton = UIBarButtonItem(title: "Refresh", style: UIBarButtonItemStyle.Plain, target: self, action: #selector(FollowVC.refresh))
是错误的。你必须使用或书写
UIBarButtonItem(barButtonSystemItem: UIBarButtonSystemItem, target: AnyObject?, action:Selector)
第二次使用的是UIBarButtonItemStyle.Plain。如果需要刷新按钮,则必须设置UIBarButtonSystemItem.refresh
SWIFT
override func viewDidLoad()
{
// Create the navigation bar
let navigationBar = UINavigationBar(frame: CGRect(origin: CGPoint(x: 0, y: 0), size: CGSize(width: self.view.frame.size.width, height: 64))) // set frame here
//set the background color
navigationBar.backgroundColor = UIColor.white
navigationBar.delegate = self as? UINavigationBarDelegate;
// Create a navigation item with a title
let navigationItem = UINavigationItem()
navigationItem.title = "title" //If you want to set a tilte set here.Whatever you want set here.
// Create button for navigation item with refresh
let refreshButton = UIBarButtonItem(barButtonSystemItem: UIBarButtonSystemItem.refresh, target: self, action: Selector(("actionRefresh:")))
// I set refreshButton for the navigation item
navigationItem.leftBarButtonItem = refreshButton
// Assign the navigation item to the navigation bar
navigationBar.items = [navigationItem]
// Make the navigation bar a subview of the current view controller
self.view.addSubview(navigationBar)
}
#pragma action method
func actionRefresh(sender: UIBarButtonItem)
{
print("The action button is refreshed")
}
打印语句是
The action button is refreshed
The button action refresh is performed
目标C
- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
UINavigationBar *navbar = [[UINavigationBar alloc]initWithFrame:CGRectMake(0, 0, self.view.frame.size.width, 64)];
navbar.backgroundColor = [UIColor whiteColor];
navbar.delegate = self;
UINavigationItem * navItem = [[UINavigationItem alloc] init];
navItem.title = @"Title"; //Set Title Here Wahtever You Want Here
UIBarButtonItem *buttonRefresh = [[UIBarButtonItem alloc]initWithBarButtonSystemItem:UIBarButtonSystemItemRefresh
target:self
action:@selector(actionRefresh:)];
navItem.leftBarButtonItem = buttonRefresh;
navbar.items = @[navItem];
[self.view addSubview:navbar];
}
NSLog语句是
The action button is refreshed
The button action refresh is performed
请参见屏幕截图中的刷新按钮
好的解决方案
即使已经问了一个很好的问题。请检查我更新的目标c和swift答案。非常感谢兄弟