我正在为我的应用程序创建主题,这是基于xml的,并将存储在我的应用程序的主题文件夹中。我需要遍历该文件并应用主题,即设置导航栏样式,Tabbar样式,字体等。对此,最好的解决方案是什么?我有大约7-8个视图控制器需要在应用程序启动或viewdidload方法上应用该主题。任何建议都会很棒。iphone应用程序xml基于主题
我已经创建了xml解析器,它将任何xml转换为NSMutableDictionary。每个节点由以下类识别
@interface xmlObject : NSObject {
NSString *innerText;
NSMutableDictionary *children;
NSString *NodeName;
NSDictionary *attributes;
}
所以XML与结构
<navigationbar>
<backgroundcolor> <!-- rgb with values between 0-1 -->
<red>0.8</red>
<green>1.0</green>
<blue>0.5</blue>
<alpha>0.8</alpha>
</backgroundcolor>
<tintcolor> <!-- rgb with values between 0-1 -->
<red>0.8</red>
<green>1.0</green>
<blue>0.5</blue>
<alpha>0.8</alpha>
</tintcolor>
<backgroundimage></backgroundimage> <!-- png 320 * 44 -->
<color> <!-- rgb with values between 0-1 -->
<red>0.8</red>
<green>1.0</green>
<blue>0.5</blue>
<alpha>0.8</alpha>
</color>
</navigationbar>
将具有导航条通过的XmlObject方法返回NMUTAble字典对象的关键说parsexml
和将具有4个子节点的每个本身一个NSMUtableDictionary。所以,如果我想访问和backgroundImage节点,则下面的代码得到其数值
[[[[tmp objectForKey:@"navigationbar"] objectForKey:@"children"] objectForKey:@"backgroundimage"] objectForKey:@"innertext"]
//其中TMP是的NSMutableDictionary返回byxml OBJ实例方法。
什么可能是最好的解决方案来解析包含每个屏幕样式的XML,就像我在导航栏中显示的样式一样?
感谢您的回复。我试图避免plist,因为我已经解析xml到NSMutableDictionary。什么可能是这样的应用程序的设计。我应该创建导航栏,工具栏和tabbar的drawrect方法,并在那里应用主题,或者我应该在viewdidload方法上做。我得到了NSMutableDictionary中的所有样式。 – 2010-06-04 08:50:50