Disable specific settings dynamically - iphone

I am developing an iPhone app which uses Settings.bundle to let the user choose some options.
I have two questions regarding this:
How can I completely remove/hide some setting? (for instance if the app is running on iPhone 3G I want to hide settings regarding the compass)
How can I disable (fade) a setting? (for instance, I have two Toggle Switches and if the first is set to OFF the second one has no meaning and should be disabled)

You can't. Your app cannot dynamically influence what is shown in the Settings app.

Related

Can InAppSettingsKit be used just for Settings.app

I would like to use InAppSettingsKit only for displaying the settings in the Settings.app of the iPhone. I have different custom settings for in-app settings. Is this possible and how can this be achieved ?
To support traditional Settings.app panes, the app must include a Settings.bundle with at least a Root.plist to specify the connection of settings UI elements with NSUserDefaults keys. InAppSettingsKit basically just uses the same Settings.bundle to do its work. This means there's no additional work when you want to include a new settings parameter. It just has to be added to the Settings.bundle and it will appear both in-app and in Settings.app. All settings types like text fields, sliders, toggle elements, child views etc. are supported.
The plists are searched in this order:
InAppSettings.bundle/FILE~DEVICE.inApp.plist - InAppSettings.bundle/FILE.inApp.plist
InAppSettings.bundle/FILE~DEVICE.plist
InAppSettings.bundle/FILE.plist
Settings.bundle/FILE~DEVICE.inApp.plist
Settings.bundle/FILE.inApp.plist Settings.bundle/FILE~DEVICE.plist
Settings.bundle/FILE.plist
I hope it helps!!
EDIT:
The InAppSettingsKit library searches automatically on all your settings bundles, in that order I wrote before. However, the settings.app only searches into the Settings.bundle. So, if you want a separated settings file for your app (using InAppSettingsKit) you can create a Settings.bundle for your settings app and a, e.g., InAppSettings.bundlefor your in-app settings.

iPhone - Sending the app to the background

In my app, when it runs for the first time, it shows a UIViewAlert and offers you to see the preferences for the app - and the user has 2 choices - yes or no. If the user hits no the alert fades away and the application continues running. I want to set it in such a way, that if the user hits yes, my app will go to the background, the settings tab of the app will be opened (I added a settings bundle to the app). Is it possible to do such a thing? Thanks!
No, this is not possible. But you can create a settings view in you app and show it instead of trying to open the settings app.
Normally, you do want to encourage users to use your app as long as possible, and making them quit your app yourself is not the best way to achieve that.
No, this isn't possible.
But you could use InAppSettingsKit and modally show a view controller with the settings inside the app.
You can find out more here - http://www.inappsettingskit.com/

Can an iphone app change its home screen icon and name after installation?

Can an iphone app change its home screen icon and name after installation?
What i want to do is make a generic application for several of our clients, that upon installation and login by users it detects which of our client it applies to and changes its icon and name to reflect the appropriate branding.
Is this going to be possible? Or are we simply going to have to make (and submit for approval...) one app per client?
Thanks
Updated: since iOS 10 it's possible to change the application icon from the list of pre-defined ones in the Info.plist. However display name still stays the constant.
Outdated: Since app's name is in Info.plist which resides with app's icon in app's bundle (which is readonly) - it cannot. You can only change your app's name and icon after releasing an update into the appstore. You may though change application icon's badge value. But as I see in your scenario - it won't fit your needs at all.

iPhone app remembers last state (multitasking?) unwanted behavior!

User launches the app, quits, relaunches and the app shows up in the exact previous state, as if the app didn't quit at all. I have no custom save state support, so this is really baffling. It happens on one of the user's 3GS, but not on my 3G. Which seems to indicate that this is OS4's multitasking at work, because 3G isn't supported. If this is true, is there a way to turn off this behavior?
So, if your app isn’t supposed to use multitasking at all or if you simply wish to disable it during development or debugging, all you’ve to do is to edit your project’s info.plist and depending on how you’re editing it:
* Raw text editor
Add a property named “UIApplicationExitsOnSuspend” and set it’s value to ‘Yes’
* The XCode GUI plist editor
Add a new row and select “Application does not run in background” (or type “UIApplicationExitsOnSuspend”) and then toggle the checkbox
http://www.alexandre-gomes.com/?p=545

In-app settings controlled by plist?

Is there a library or good tutorial which covers creating in-app settings, like this:
http://img.skitch.com/20090625-s8bf6ahybwe3cesd1id38h3nt.jpg
What I would like is if it:
doesn't use the built-in Settings app, and does not replicate it's settings in the Settings app
is controlled by a plist file with various Dictionaries and Arrays
creates a nice looking table view
allows edit-in-place text fields as well as switches and sliders and ticks etc
doesn't have any of the annoying problems I've come across when trying to build my own version (not scrolling to show the textfield, cells disappearing)
JUST TO EMPHASIZE: I DO NOT WANT THE SETTINGS TO APPEAR IN THE SETTINGS APP.
It would appear that the iphone dev world is crying out for such a thing.
THANK YOU!
InAppSettingsKit
I've used the open source project InAppSettings, and it works well.