我正在创建一个iOS应用,并在Storyboard中创建了许多不同的视图,以及代表不同ViewController对象的许多.swift文件。由于某些原因,我无法弄清楚如何将我创建的视图与其他ViewController(即.swift文件)链接。
我知道我应该从情节提要中的视图拖放或拖放到右侧的“自定义类”下拉列表(或与此类似的内容)。但是我看不到使ViewControllers为自定义类的选项。
任何人都可以帮助找出问题所在吗?我觉得这很微不足道,除非我丢失了一些东西,之前我已经很容易做到这一点,但现在已经消隐了一段时间。
在下图中,您可以看到我可以链接到Storyboard中的一些视图控制器,但是我不再能够链接底部的两个“ View Controller Scenes”(后来我将其创建到其他ViewController)我稍后制作的.swift文件。
答案 0 :(得分:1)
要将您的struct OCMInfo
{
LPARAM lParam;
LRESULT lResult;
};
LRESULT WINAPI DefParentProc(HWND hwnd, UINT umsg, WPARAM wparam, LPARAM lparam)
{
switch (umsg) {
case WM_NOTIFY:
{
NMHDR* nmhdr = (NMHDR*)lparam;
if (nmhdr->hwndFrom != NULL)
{
OCMInfo info;
info.lParam = lParam;
info.lResult = 0;
if (SendMessage(nmhdr->hwndFrom, umsg + OCM__BASE, wparam, (LPARAM)&info))
return info.lResult;
}
break;
}
// All of these provide the control's HHWND in LPARAM
case WM_COMMAND:
case WM_CTLCOLORBTN:
case WM_CTLCOLOREDIT:
case WM_CTLCOLORDLG:
case WM_CTLCOLORLISTBOX:
case WM_CTLCOLORMSGBOX:
case WM_CTLCOLORSCROLLBAR:
case WM_CTLCOLORSTATIC:
case WM_VKEYTOITEM:
case WM_CHARTOITEM:
if (lparam != 0)
{
OCMInfo info;
info.lParam = lParam;
info.lResult = 0;
if (SendMessage((HWND)lparam, umsg + OCM__BASE, wparam, (LPARAM)&info))
return info.lResult;
}
break;
// All of these provide ID of the control in WPARAM:
case WM_DRAWITEM:
case WM_MEASUREITEM:
case WM_DELETEITEM:
case WM_COMPAREITEM:
if (wparam != 0) {
HWND hwndControl = GetDlgItem(hwnd, wparam);
if (hwndControl)
{
OCMInfo info;
info.lParam = lParam;
info.lResult = 0;
if (SendMessage(hwndControl, umsg + OCM__BASE, wparam, (LPARAM)&info))
return info.lResult;
}
}
break;
// Note we do not reflect WM_PARENTNOTIFY -> OCM_PARENTNOTIFY as that
// usually does not make much sense.
}
return DefWindowProc(hwnd, umsg, wparam, lparam);
}
LRESULT WINAPI DefChildProc(HWND hwnd, UINT umsg, WPARAM wparam, LPARAM lparam)
{
switch (umsg) {
case OCM__NOTIFY:
{
OCMInfo* info = (OCMInfo*)lparam;
NMHDR* nmhdr = (NMHDR*)(info->lparam);
if (...) {
...
info->lResult = ...;
return TRUE;
}
break;
}
case OCM__COMMAND:
{
OCMInfo* info = (OCMInfo*)lparam;
if (...) {
...
info->lResult = ...;
return TRUE;
}
break;
}
...
}
return DefWindowProc(hwnd, umsg, wparam, lparam);
}
文件连接到ViewController.swift
,请执行以下操作:
ViewController
。ViewController
的{{1}}文件。这是一个非常容易错过的步骤。我自己做过很多次了。供以后参考,在情节提要中创建新的ViewController.swift
时,请尽快将其连接到其ViewController
文件。否则,可能会导致错误的Interface Builder连接等。