Я знаю, что это уже решено, но я подумал, что мог бы добавить к этому ответу то, что я обнаружил, для полноты.
Вы также можете просто добавить MKNumberBadgeView
непосредственно к представлению для UIBarButtonItem
. Используя Monotouch (C #), вы получаете представление для UIBarButtonItem
.
//barbutton is some UIBarButtonItem. Make sure to check for view. In
//ViewDidLoad(), the view for the barbutton might not exist yet.
Selector sel = new Selector("view");
var handle = Messaging.intptr_objc_msgSend(barbutton.Handle, sel.Handle);
var view = Runtime.GetNSObject(handle) as UIView;
var mkBadge = ... //the badge
view.Add(badge);
view.Layer.ZPosition = <some large number>
Я уверен, что это легко конвертировать в Obj-C. Вам также нужно будет поэкспериментировать с Рамкой, чтобы значок появился в нужном месте.
Таким образом, вам не придется удалять / добавлять вид с панели навигации.