2016-07-20 3 views
3

Я хочу, чтобы логотип моего приложения сопровождался именем приложения на панели навигации. Наряду с этим должна быть кнопка «назад».Swift: логотип на панели навигации вместе с кнопкой возврата

Ниже приведен скриншот:

Screenshot for question

Я попытался код ниже.

self.navigationItem.setHidesBackButton(false, animated:true); 

let imgLogo : UIImage = UIImage(named:"Logo")! 
let imgViewLogo : UIImageView = UIImageView(image: imgLogo) 
imgViewLogo.frame = CGRectMake(0, 0, 40, 40) 

let leftItem:UIBarButtonItem = UIBarButtonItem(customView: imgViewLogo) 
self.navigationItem.leftBarButtonItem = leftItem 
// App Name set on storyboard at design-time 

Это помещает логотип поверх задней кнопки, показанной ниже.

Screenshot 2

Как это может быть достигнуто?

ответ

1

Вы можете использовать нестандартный вид для navigationItem.titleView. Создание UIView с вашим логотипом и ярлык для заголовка UIViewController и установить
navigationItem.titleView = YOUR_CUSTOM_VIEW;

1

Вместо использования .leftBarButtonItem использования:

let imgLogo : UIImage = UIImage(named:"Logo")! 
    let imgViewLogo : UIImageView = UIImageView(image: imgLogo) 
    imgViewLogo.frame = CGRectMake(0, 0, 40, 40) 

    let leftItem:UIBarButtonItem = UIBarButtonItem(customView: imgViewLogo) 
    self.navigationItem.leftBarButtonItems?.append(leftItem) 

Он будет добавлен вместе с системой кнопки задней enter image description here

+0

Не работал. Он показывает только кнопку «Назад» и «Имя приложения». –

0

Вы может найти тонны примера об этом.

В этом примере я добавил также пространство хорошо центрируется свой логотип, если вам необходимо:

let leftButton: UIBarButtonItem = UIBarButtonItem(image: UIImage(named: "Logo")!, style: UIBarButtonItemStyle.Plain, target: self, action:#selector(MyViewController.leftButtonPress(_:))) 
let negativeSpacer = UIBarButtonItem(barButtonSystemItem: UIBarButtonSystemItem.FixedSpace, target: nil, action: nil) 
negativeSpacer.width = -5.0 // Left inset to better center your logo 
navigationItem.leftBarButtonItems = [negativeSpacer,leftButton] 

func leftButtonPress(sender: AnyObject?) { 
    // do whatever you want when you press back button 
} 
+0

Все те же. Я хочу вернуть кнопку, логотип, а затем имя приложения - это последовательность –

+0

Я не знаю, видели ли вы leftBarButtonItems вместо leftBarButtonItem, это может позволить вам добавить несколько элементов;) –

+1

Я проверил оба свойства раньше ;-) –

Смежные вопросы