Why does this return false on iOS7?
Appearance objects a special proxy objects that take advantage of ObjectiveC runtime magic to pretend to implement methods that don't exist at compile time. In ObjectiveC the return type of the [UINavigationBar appearance] method is UINavigationBar, but the actual runtime type is actually not a UINavigationBar. It just pretends to be one by intercepting the method calls. So instead of setting the BarTintColor on an actual navigation bar it just records that setting for later use.
tl;dr it's magic
Unfortunately, this also makes it very difficult to do your own custom appearance properties directly in C#. I haven't figured out how to make it work yet, and I'm still not sure whether it's even possible.
Ok, then any idea how to do this another way in C#?
[[UINavigationBar class] instancesRespondToSelector:@selector(setBarTintColor:)]
Why are you trying to do that? What is your ultimate goal here?
Goal is to avoid a crash on iOS6
Use an OS version check: http://developer.xamarin.com/recipes/ios/general/projects/environment_checks/
Xamarin Inc., as a wholly-owned Microsoft subsidiary acting as a separate legal entity, adheres to the Microsoft Privacy Statement: Privacy & cookies