0
我正在創建一個應用程序原型,並且我希望有多個.nib佈局文件,以便讓朋友嘗試不同的佈局以查看對他們最有用的方法。查找所有.nib並從路徑中提取資源
我已經有代碼來正確切換已知的.nib文件的硬編碼數組,但我想擴大我的知識總體,所以我只想寫一個通用系統,可以找到所有.nib文件該捆綁包,所以我不必更改任何代碼,如果我添加一個新的.nib佈局。
我看到給定資源的路徑確實是完整路徑。例如:
/var/mobile/Applications/69B85DBB-3B79-43F0-B88E-FFFF/TestApp.app/en.lproj/some_asset.nib
我嘗試使用完整路徑名稱加載.nib,它不工作,據我所知。似乎工作的唯一的東西是剝離的路徑和擴展到下面的資源名稱?
如果是這樣的話,我有以下幾點:
NSArray *availableNibs = [[NSBundle mainBundle] pathsForResourcesOfType:@"nib"
inDirectory:nil];
// Just grab the first .nib as a test and remove the .nib extension
NSString *aNib = [availableNibs[0] stringByReplacingOccurrencesOfString:@".nib"
withString:@""];
// Start at the end of the string and find the first '/'
for (NSInteger index = [aNib length] - 1; index >= 0; --index) {
if ([aNib characterAtIndex:index] == '/') {
// Get us down to the resource name - return string starting after that '/'
aNib = [aNib substringFromIndex:index + 1];
break;
}
}
// have resource name in 'aNib', so open
self.viewController = [[My_ViewController alloc] initWithNibName:aNib
bundle:nil];
也許我的期望是錯誤的,但是這似乎笨拙比我預期?有沒有更簡單的方法來提取資源名稱,也許使用更少的代碼?
而且,通常情況下,我可能會在嘗試做這類事情時意識到任何其他缺陷,或者這是大致正確的方法嗎?
乾杯提前
哇,這是如此簡單和乾淨。這正是我所期待的。 – JDischler