[英]How to use storyboards on the iPad, with a split-view controller (iOS5.0)?
我找不到合適的示例,當用戶在主視圖中選擇某些內容時,如何在詳細視圖中顯示新視圖?
也沒有找到任何東西。 可行的解決方案是繼續制作每個視圖的故事板(至少是復雜的故事板),並讓appDelegate類包含它們。 實際上,我對故事板ide不允許添加子視圖感到驚訝。如果還沒有,可能在下一次更新中。
Matthijs Hollemans的書“ ios5通過教程”包括如何在ipad上使用情節提要。 但是那本書需要購買,機器人免費。 我只是想找到示例代碼,但失敗了。
您可以按照以下步驟進行操作。
@protocol MyDataDelegate
- (void)sendDataToView:(MyData *)data;
@end
@interface DetailViewController : UIViewController
- (void)sendDataToView:(MyData *)data
{
// your code how to display data.
}
使用Xcode 4創建一個主從應用程序項目模板。 轉到情節提要文件,展開主視圖,然后選擇默認的靜態單元格“ Detail”並按Cmd + D,添加另一個靜態單元格。將新的靜態單元格命名為“ Hello”(或您喜歡的任何名稱)。 MasterViewController.m文件,實現此:
- (void) tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
[self.detailViewController setDetailItem:[[[tableView cellForRowAtIndexPath:indexPath] textLabel] text]];
}
本示例將detailViewController中的默認標簽設置為masterViewController的選定單元格名。 請注意,setDetailItem:方法采用id參數,在本示例中,您要傳遞NSString *。
@property (assign,nonatomic) id delegate;
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
if (delegate!=nil) {
// get your data here { your code here }
[delegate sendDataToView:data];
}
}
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
// Override point for customization after application launch.
UISplitViewController *splitViewController = (UISplitViewController *)self.window.rootViewController;
UINavigationController *navigationController = [splitViewController.viewControllers lastObject];
splitViewController.delegate = (id)navigationController.topViewController;
// set the view controller here
UINavigationController *masterNavController = [splitViewController.viewControllers objectAtIndex:0];
MasterViewController *masterViewController = [masterNavController.viewControllers objectAtIndex:0];
UINavigationController *detailNavController = [splitViewController.viewControllers objectAtIndex:1];
DetailViewController *detailViewController = [detailNavController.viewControllers objectAtIndex:0];
masterViewController.delegate = detailViewController;
return YES;
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.