我无法找到适当的示例当用户在主视图中选择某些内容时,如何在详细信息视图中显示新视图?
答案 0 :(得分:0)
也没找到任何东西。可行的解决方案是继续为每个视图(或至少复杂的视图)制作故事板,并让appDelegate类包含它们。我真的很惊讶故事板ide不允许添加子视图...也许在下一次更新中,如果还没有。
答案 1 :(得分:0)
Matthijs Hollemans的书"ios5 by tutorials"包括如何在ipad上使用故事板。但那本书需要购买,机器人免费。我只想找到示例代码,但失败了。
答案 2 :(得分:0)
您可以按照以下方式执行此操作。
@protocol MyDataDelegate
- (void)sendDataToView:(MyData *)data;
@end
答案 3 :(得分:0)
@interface DetailViewController : UIViewController
- (void)sendDataToView:(MyData *)data
{
// your code how to display data.
}
答案 4 :(得分:0)
使用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的选定单元格nam。 请注意,setDetailItem:方法采用id参数,在此示例中,您传递的是NSString *。
答案 5 :(得分:-2)
@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;
}