使用 XIB 将工具栏添加到 UIView

Posted

技术标签:

【中文标题】使用 XIB 将工具栏添加到 UIView【英文标题】:Adding toolbar to UIView using XIB 【发布时间】:2013-04-13 13:18:25 【问题描述】:

我正在为 iPad 做一个基于标签栏的应用程序的简单示例。我有一个负责标签管理的控制器:

@interface MainTabBarController : UITabBarController

和一些视图控制器传递给 MainTabBarController 如下:

@interface WorkspaceViewController : UIViewController

//

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions

    self.window = [[[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]] autorelease];

    self.tabBarRootController = [[MainTabBarController alloc] initWithNibName:@"MainTabBarController" bundle:nil];
    UIViewController *workspaceController = [[[WorkspaceViewController alloc] initWithNibName:@"WorkspaceViewController" bundle:nil] autorelease];

    self.tabBarRootController.viewControllers = [NSArray arrayWithObjects:workspaceController, nil];
    self.window.rootViewController = self.tabBarRootController;
    [self.window makeKeyAndVisible];

    [workspaceController release];
    return YES;

WorkspaceViewController 有它自己的 xib 文件。使用这个 XIB 文件,我向工作区视图添加了一些控件,一切都很好。但是当我想添加(拖放到 xib 文件中)一个工具栏时,它不会在应用程序运行时出现。

这就是我的 WorkspaceViewController XIB 文件的样子:

工具栏通过插座与控制器连接(使用xib)。

您能说出可能是什么原因以及如何解决吗?我的工具栏必须仅在工作区视图可见时才可见,并且它应该只与工作区交互(工作区将负责一些绘图内容,工具栏将具有剪切、粘贴、复制等选项)

【问题讨论】:

我看不出你所做的有什么问题。在 WorkspaceViewController 的 xib 文件中,您是否将工具栏视为画布左侧对象列表中主视图的子视图? 【参考方案1】:

您在调用autorelease 后再次释放workspaceController。

【讨论】:

以上是关于使用 XIB 将工具栏添加到 UIView的主要内容,如果未能解决你的问题,请参考以下文章

使用 xib 将 tapGestureRecognizer 添加到自定义 UIView

如何将 UITableView 作为子视图添加到 xib 中的 UIView?

将 UIView 从 xib 添加到 UIScrollView

将 xib 中的子视图添加到自定义 UIView

将带有 xib 的 UIView 子类添加到 UIViewController

将 UICollectionView 添加到 UIView