导航栏在显示 AlertViewController 后更改我的项目位置
Navigation bar change my items positions after show AlertViewController
我的导航栏上有 2 个图标,但是当我显示 alertViewController
时,这些图标改变了它们的位置。
这些是我的图标。
当我显示 alertViewController
时会发生这种情况
这是我的viewController
内容。
UIBarButtonItem *helpItem;
UIBarButtonItem *helpItem1;
- (void)viewDidLoad {
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
[self setup];
}
-(void)setup{
helpItem = [[UIBarButtonItem alloc] initWithTitle:@"" style:UIBarButtonItemStylePlain target:self action:@selector(helpButtonItemTapped:)];
helpItem1 = [[UIBarButtonItem alloc] initWithTitle:@"" style:UIBarButtonItemStylePlain target:self action:@selector(helpButtonItemTapped:)];
helpItem.image = [UIImage imageNamed:@"test"];
helpItem1.image = [UIImage imageNamed:@"test"];
self.navigationItem.rightBarButtonItems = [NSArray arrayWithObjects: helpItem, helpItem1, nil];
}
-(void)helpButtonItemTapped:(id)sender{
UIAlertController *alertController = [UIAlertController
alertControllerWithTitle:@"Title"
message:nil
preferredStyle:UIAlertControllerStyleActionSheet
];
[alertController addAction:[UIAlertAction actionWithTitle:@"Cancel" style:UIAlertActionStyleCancel handler:^(UIAlertAction * action) {
[self.presentedViewController dismissViewControllerAnimated:YES completion:nil];
}
]];
[self presentViewController:alertController animated:YES completion:nil];
}
将您的初始 UIBarbuttonItem 代码更改为此
helpItem = [[UIBarButtonItem alloc] initWithImage:[UIImage imageNamed:@"memoAccess"] style: UIBarButtonItemStylePlain target:self action:@selector(helpButtonItemTapped:)];
helpItem1 = [[UIBarButtonItem alloc] initWithImage:[UIImage imageNamed:@"memoAccess"] style: UIBarButtonItemStylePlain target:self action:@selector(helpButtonItemTapped:)];
截图
我刚遇到同样的问题,但在 Swift 3 中,我就是这样设法解决它的。我更改了以下代码:
let BarButtonItemVariable : UIBarButtonItem!
BarButtonItemVariable = UIBarButtonItem(title: "", style: .plain, target: self, action: #selector(self.SomeMethod))
BarButtonItemVariable.image = UIImage(named: "SomeImage")
self.navigationItem.rightBarButtonItem = BarButtonItemVariable
为此:
let BarButtonItemVariable : UIBarButtonItem = UIBarButtonItem(image: UIImage(named : "SomeImage"), target: self, style: .plain, action: #selector(self.SomeMethod))
self.navigationItem.rightBarButtonItem = BarButtonItemVariable
我的导航栏上有 2 个图标,但是当我显示 alertViewController
时,这些图标改变了它们的位置。
这些是我的图标。
当我显示 alertViewController
这是我的viewController
内容。
UIBarButtonItem *helpItem;
UIBarButtonItem *helpItem1;
- (void)viewDidLoad {
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
[self setup];
}
-(void)setup{
helpItem = [[UIBarButtonItem alloc] initWithTitle:@"" style:UIBarButtonItemStylePlain target:self action:@selector(helpButtonItemTapped:)];
helpItem1 = [[UIBarButtonItem alloc] initWithTitle:@"" style:UIBarButtonItemStylePlain target:self action:@selector(helpButtonItemTapped:)];
helpItem.image = [UIImage imageNamed:@"test"];
helpItem1.image = [UIImage imageNamed:@"test"];
self.navigationItem.rightBarButtonItems = [NSArray arrayWithObjects: helpItem, helpItem1, nil];
}
-(void)helpButtonItemTapped:(id)sender{
UIAlertController *alertController = [UIAlertController
alertControllerWithTitle:@"Title"
message:nil
preferredStyle:UIAlertControllerStyleActionSheet
];
[alertController addAction:[UIAlertAction actionWithTitle:@"Cancel" style:UIAlertActionStyleCancel handler:^(UIAlertAction * action) {
[self.presentedViewController dismissViewControllerAnimated:YES completion:nil];
}
]];
[self presentViewController:alertController animated:YES completion:nil];
}
将您的初始 UIBarbuttonItem 代码更改为此
helpItem = [[UIBarButtonItem alloc] initWithImage:[UIImage imageNamed:@"memoAccess"] style: UIBarButtonItemStylePlain target:self action:@selector(helpButtonItemTapped:)];
helpItem1 = [[UIBarButtonItem alloc] initWithImage:[UIImage imageNamed:@"memoAccess"] style: UIBarButtonItemStylePlain target:self action:@selector(helpButtonItemTapped:)];
截图
我刚遇到同样的问题,但在 Swift 3 中,我就是这样设法解决它的。我更改了以下代码:
let BarButtonItemVariable : UIBarButtonItem!
BarButtonItemVariable = UIBarButtonItem(title: "", style: .plain, target: self, action: #selector(self.SomeMethod))
BarButtonItemVariable.image = UIImage(named: "SomeImage")
self.navigationItem.rightBarButtonItem = BarButtonItemVariable
为此:
let BarButtonItemVariable : UIBarButtonItem = UIBarButtonItem(image: UIImage(named : "SomeImage"), target: self, style: .plain, action: #selector(self.SomeMethod))
self.navigationItem.rightBarButtonItem = BarButtonItemVariable